Postfix 无法传送到用户的 Maildir

Postfix 无法传送到用户的 Maildir

有一台使用 postfix/dovecot 和 CentOS 6.5/6.6 的服务器,过去几个月一切都运行良好,直到 raid 控制器出现故障。所以我安装了一台使用 CentOS 7 的新服务器。我使用 adduser 创建了用户(幸运的是只有一个句柄已满),复制了主目录内容(包括邮件),并将所有者设置为用户:用户和 770 权限。

每个用户的主文件夹中都有一个 Maildir 目录,其设置为:

drwxrwx--- 9 enduser postfix 4096 Nov 19 22:34 Maildir

所有子目录为770,文件为660。

我遇到的问题是 Postfix 无法写入 Maildir:

Nov 21 07:47:16 host postfix/local[12504]: warning: maildir access problem for UID/GID=1002/1002: create maildir file /home/enduser/Maildir/tmp/1416584836.P12504.host.domain.com: Permission denied
Nov 21 07:47:16 host postfix/local[12504]: 59E944726D1: to=<[email protected]>, relay=local, delay=185, delays=185/0.02/0/0.05, dsn=5.2.0, status=bounced (maildir delivery failed: create maildir file /home/enduser/Maildir/tmp/1416584836.P12504.host.domain.com: Permission denied)

我已经尝试了我能想到的所有权限组合,除了 777。

任何方向或光线都将受到赞赏,

~ 兰

/home/enduser 树:

   .
    +-- enduser
        +-- Maildir
            +-- cur
            +-- new
            +-- tmp

答案1

为了传递邮件,postfix 必须能够进入用户的主目录,并且该目录必须包含完整的 Maildir 树,其中包含子文件夹tmpcurnew,并且所有子文件夹都具有正确的权限。

由于您已经检查过 Maildir 是否存在、是否有正确的文件夹以及是否有正确的权限,剩下的就是检查 postfix(以及用户自己)是否可以进入用户的主目录。

为了实现这一点,权限必须在每个步骤中都正确。因此,不仅 需要/home/user具有正确的权限 - 也需要/home。如果它由用户所属的组拥有,则必须将其设置为 750,如果不是,则必须将其设置为 755。

您可以通过简单地对用户执行 su 命令并尝试进入他们的主目录来验证这一点。

答案2

看起来它是一个常规目录,
rm -rf /home/user/Maildir POSTFIX 将为您重新创建符号链接。

如果你想手动创建它

 maildirmake.dovecot /etc/skel/Maildir
 maildirmake.dovecot /etc/skel/Maildir/.Drafts
 maildirmake.dovecot /etc/skel/Maildir/.Sent
 maildirmake.dovecot /etc/skel/Maildir/.Spam
 maildirmake.dovecot /etc/skel/Maildir/.Trash
 maildirmake.dovecot /etc/skel/Maildir/.Templates
 cp -r /etc/skel/Maildir /home/$mail_root_user/
 chown -R $mail_root_user:$mail_root_user /home/$mail_root_user/Maildir
 chmod -R 700 /home/$mail_root_user/Maildir

相关内容