Postfix

Procmail 配方,root 擁有的郵件

  • June 20, 2017

我正在使用 Postfix 和 Procmail 的組合來處理我的一台伺服器上的入站電子郵件。每個使用者都有一個本地帳戶,多年來我一直在/usr/local/etc/procmailrc成功使用以下帳戶:

DEFAULT=$HOME/mail/
LOGFILE=/var/log/procmail

我最近添加了一個配方,可以將標記為垃圾郵件的郵件定向到單獨的文件夾:

:0
* ^X-Spam-Flag: YES
$HOME/mail/.Junk/

但是,在某些情況下,進入此文件夾的消息似乎歸根使用者所有,而不是正確的使用者。我的收件箱從來沒有遇到過這個問題,而且它似乎只影響某些使用者。

我設法擷取了其中一個 Procmail 程序,ps它似乎確實以正確的使用者身份執行。(此使用者在垃圾文件夾中也有根擁有的郵件)

# ps axu | grep procmail
{correct-local-username}   7402   0.0  0.2  12140   1780 ??  Ss   11:37AM      0:00.01 /usr/local/bin/procmail -a

有誰知道為什麼配方處理的消息最終會歸根所有,而進入預設文件夾的消息會得到正確的所有者?

有什麼我可以做的(即使它很棘手,例如從 Procmail 配方中呼叫 chown )以確保消息始終由正確的使用者擁有?

如果它很重要,Procmail 在 Postix 中的配置如下:

mailbox_command = /usr/local/bin/procmail -a "$EXTENSION"

檢查垃圾文件夾的權限是否正確,但您是否也可以將以下內容添加到您的 procmail.cf:

DROPPRIVS=yes

我不是 procmail 方面的專家,但根據這個 man entry,它應該放棄 procmail 擁有的任何特權,而收件人沒有(強調我的)。

DROPPRIVS            If  set  to  `yes'  procmail   will   drop   all
                     privileges  it  might  have  had (suid or sgid).
                     This is only useful if  you  want  to  guarantee
                     that the bottom half of the /etc/procmailrc file
                     is executed on behalf of the recipient.

關鍵部分; 代表收件人執行

從使用者@Tripleee 解釋為什麼這樣做:

DEFAULT 傳遞發生在隱式 DROPPRIVS 之後,但如果您在特權模式下顯式傳遞某些內容,則還需要顯式刪除您的權限。

引用自:https://serverfault.com/questions/856785