
我在 Debian VPS 中設定了一個郵件系統。除了我無法向用戶發送電子郵件之外,一切都很順利root
。
有一個解決方法可以在/etc/aliases
類似的內容中指定
root: <some_other_user>
然後所有發送到的電子郵件root@<fqdn>
都會進入<some_other_user>@<fqdn>
郵箱。
從安全角度來看,它甚至更好,但我想知道是否有一種方法可以向用戶發送電子郵件root
。
那麼,Postfix 在技術上可行嗎?如果是這樣,我該怎麼做?
更新:
這是postfix.service
日誌:
Apr 26 22:18:25 <hostname><fqdn> postfix/qmgr[2375]: 3905421760: from=<ddnomad@<fqdn>>, size=631, nrcpt=1 (queue active)
Apr 26 22:18:26 <hostname><fqdn> postfix/local[2429]: 3905421760: to=<mailuser@<fqdn>>, orig_to=<root@<fqdn>>, relay=local, delay=1.3, delays=0.21/0.01/0/1, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
據我了解,這意味著信件已成功發送。但始終沒有送到root
他的信箱。
答案1
postfix 使用procmail
, 來發送電子郵件,並且當出於安全原因而運行postfix
呼叫時,發送到的電子郵件最終將發送給使用者。procmail
nobody
root
nobody
Debian 郵件清單比我解釋得更好,並建議解決方法:
postfix 自己的投遞代理可以投遞到 root 的郵箱,但是 postfix 永遠不會以 root 身分派生外部程式(例如 procmail)。它要么將 UID 更改為正在傳遞的郵件的所有者,要么如果該用戶是 root,則將 UID 更改為無人。
所以 procmail 在傳遞 root 的郵件時以無人身分執行。
我透過將 /var/spool/mail/root 符號連結到 /var/spool/mail/nobody 來解決這個問題 - 然後我可以以 root 身分讀取 root 的郵件。
請注意,這不是建議的方法 - 大多數人會建議您將 root 的郵件導向至 /etc/aliases 中的另一個使用者。
在線程的更上方,他們還記得postfix
關於根郵件的常見問題:
如果您使用 procmail(或其他一些指令)進行本機郵件傳遞,Postfix 將不會以 root 身分傳遞郵件。相反,Postfix 以無人身分執行 procmail(或其他)。也許有一天 Wietse 會足夠信任 Postfix,以 root 身分執行外部命令。解決方案:就像您不應該以 root 身分登入一樣(異常情況除外),您也不應該以 root 身分接收郵件。
為 root 建立郵件別名,將郵件轉寄給真實使用者。