将所有 root 邮件传输给足够的用户

将所有 root 邮件传输给足够的用户

我想将我的根邮件转移给另一个用户(他的昵称userto)。我不想转发邮件,因为 的userto主目录位于加密硬盘上,我使用它时安装它,不使用时卸载它。因此,如果我将邮件转发给userto他们,如果硬盘无法安装,他们就会丢失。我不需要它,因为根邮件有系统消息。

我想在需要时通过命令行传输邮件。

我已经设置了PostFix和DoveCot(邮箱)。

我尝试过使用dovecot,但它不允许我访问根邮件。为了检查我使用doveadm search -u root ALL.

我遇到了一个错误:

Error: Invalid settings in userdb: userdb returned 0 as uid
doveadm
Error: User lookup failed: Invalid user settings. Refer to server log for more information.

也许我需要使用其他工具dovecot

我只看到一种方法,创建一个新用户(使用 nick's collectmail)并将所有邮件从 root 转发到他的邮箱。当我需要时,从collectmail移动邮件到userto通过命令行。但我不认为这种方式是最好的。

编辑:

国际海事组织我不使用spool

我有邮箱,所有邮件都放入~Mailbox

答案1

您是否尝试将它们从根目录复制到用户目录?一般root的邮件存放在/var/mail

首先,检查 root 邮件的存储位置

sudo env | grep MAIL

一般是/var/mail/root或者/var/spool/mail/root

其次,通过以下方式检查用户的邮件位置:env | grep MAIL 也应该是:/var/mail/$USER/var/spool/mail/$USER

现在,只需简单地尝试将它们从 root 复制到具有 root 权限的 $USER。

答案2

如果您像我一样,只是希望能够使用 dovecot 读取根邮件(没有将它们转发或复制给其他用户的缺点),那么对我来说最好的解决方案是使用 binfs 为此目的创建一个专用用户-挂载的Maildir,例如:

apt install bindfs
useradd -c "Account to Read ROOT mails with Dovecot" -M -r -s /usr/sbin/nologin -d /nonexistent -U rootmail
mkdir /var/spool/mail/mboxes/rootmail
chown rootmail: /var/spool/mail/mboxes/rootmail
echo -e '\n/var/spool/mail/mboxes/root /var/spool/mail/mboxes/rootmail fuse.bindfs map=root/rootmail:@root/@rootmail 0 0' >> /etc/fstab
mount /var/spool/mail/mboxes/rootmail

通过该设置,您可以使用用户 rootmail 通过利用 dovecot 服务器的 IMAP 客户端访问邮件(可能您必须配置 dovecot first_valid_uid=1 和 first_valid_gid=1 以允许系统用户或将用户添加为非系统用户,省略-r标志到用户添加)。

相关内容