Email
為什麼發送到 root 的電子郵件會重定向到任何人?
$ uname -a Linux xxxx 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux $ cat /etc/aliases # See man 5 aliases for format postmaster: root root: root@xxxx.xxxx
沒有人收到的電子郵件。
$ sudo mail -f /var/spool/mail/nobody "/var/spool/mail/nobody": 23 messages 1 new 19 unread 1 Anacron Tue Jan 9 00:07 20/823 Anacron job 'cron.daily' on xxxx From: Anacron <root@xxxx.xxxx> To: root@xxxx.xxxx Subject: Anacron job 'cron.daily' on xxxx Content-Type: text/plain; charset=UTF-8
為什麼發送給 root 的電子郵件會重定向到任何人?
$ sudo mail -f /var/spool/mail/root /var/spool/mail/root: 0 messages
root 的郵箱中沒有電子郵件。
發送電子郵件到 root 進行測試。
$ echo "This is the body of the email" | mail -s "This is the subject line" root
他們都可以收到電子郵件。
$ sudo mail -f /var/spool/mail/root $ sudo mail -f /var/mail/root $ sudo mail -f /root/Maildir
只有沒有人可以收到電子郵件。
$ sudo mail -f /var/spool/mail/nobody
/var/log/mail.log 中的日誌資訊
$ sudo cat /var/log/mail.log Apr 27 17:48:43 xxxx postfix/pickup[7114]: 1FE0D2801E3: uid=1000 from=<debian9@xxxx.xxxx> Apr 27 17:48:43 xxxx postfix/cleanup[7492]: 1FE0D2801E3: message-id=<20180427094843.1FE0D2801E3@xxxx.xxxx> Apr 27 17:48:43 xxxx postfix/qmgr[1394]: 1FE0D2801E3: from=<debian9@xxxx.xxxx>, size=360, nrcpt=1 (queue active) Apr 27 17:48:43 xxxx postfix/local[7494]: 1FE0D2801E3: to=<root@xxxx.xxxx>, relay=local, delay=0.21, delays=0.17/0/0/0.04, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION") Apr 27 17:48:43 xxxx postfix/qmgr[1394]: 1FE0D2801E3: removed
為什麼 postfix 會將電子郵件從 root 重定向到任何人?
檢查是否存在名為
$HOME/.forward
. 如果此文件存在,並且包含電子郵件地址或本地使用者名,則擁有該文件的使用者的傳入郵件將被轉發到給定的地址。例如,它可能看起來像這樣:
debian9@hwy:~$ sudo cat /root/.forward nobody debian9@hwy:~$
正如一些材料所述:
Root 的郵件不會投遞給任何人 如果您使用 procmail(或其他命令)進行本地郵件投遞,Postfix 將不會以 root 身份投遞郵件。相反,Postfix 以無人身份執行 procmail(或其他)。也許有一天 Wietse 會信任 Postfix 足以以 root 身份執行外部命令。
Postfix 不僅以無人身份執行 procmail(或其他),而且還以 root 身份向無人發送電子郵件。
網路上的一些舊資料: postfix/procmail 配置中的奇怪傳遞
Postfix 自己的投遞代理可以投遞到root 的郵箱,但是postfix 永遠不會以root 身份派生外部程序(例如procmail)。它要麼將 UID 更改為正在傳遞的郵件的所有者,要麼如果該使用者是 root,那麼它將 UID 更改為沒人。
所以 procmail 在傳遞 root 的郵件時會以無人身份執行。