多年来(使用 EL6 及之前的版本),我已经在 /etc/aliases 文件中成功使用了这样的条目:
bugs: /var/spool/mail/bugs
想法是可以将发送给非用户的邮件放入文件中以供以后处理或存档。使用 RHEL7 或 CentOS7 时,这些条目会出现以下两个错误。
首先,在没有创建错误文件的情况下,邮件日志错误“无法独占地创建文件:权限被拒绝”:
May 16 12:17:04 foobar postfix/local[17510]: 3D313673442: to=<[email protected]>, relay=local, delay=0.12, delays=0.08/0.02/0/0.02, dsn=5.2.0, status=bounced (cannot append message to file /var/spool/mail/bugs: cannot create file exclusively: Permission denied)
其次,如果我预先创建一个具有合理所有权+上下文的文件:
ls -l /var/spool/mail/bugs
-rw-rw----. 1 postfix mail 0 May 7 19:34 /var/spool/mail/bugs
ls -Z /var/spool/mail/bugs
-rw-rw----. postfix mail system_u:object_r:mail_spool_t:s0 /var/spool/mail/bugs
我收到“无法创建锁定文件”错误
May 16 12:11:43 foobar postfix/local[17422]: warning: unable to create lock file /var/spool/mail/bugs.lock: Permission denied
我能够将消息传递到具有以下可怕权限(1777 和 666)的文件,但是出于安全原因这显然是不可接受的:
# ll -d /var/spool/mail; ll /var/spool/mail/bugs
drwxrwxrwt. 2 root mail 52 May 16 13:36 /var/spool/mail
-rw-rw-rw-. 1 postfix mail 6913 May 16 13:31 /var/spool/mail/bugs
EL7 是 postfix-2.10'ish,EL6 是 postfix-2.6'ish。
答案1
main.cf
解决这个问题的方法是在参数中进行设置,而无需创建新用户default_privs = mail
。
请记住,不鼓励对 default_privs 使用 root 或 postfix。