web-dev-qa-db-ja.com

Procmailレシピ、rootが所有するメール

私はPostfixとProcmailの組み合わせを使用して、サーバーの1つで受信メールを処理しています。各ユーザーはローカルアカウントを持っており、私は以下を使用しています/usr/local/etc/procmailrc何年にもわたって成功:

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

最近、スパムとしてフラグが付けられたメッセージを別のフォルダーに送信するレシピを追加しました。

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

ただし、このフォルダーに送信されるメッセージは、正しいユーザーではなくrootによって所有されているように見える場合があります。 Inboxでこの問題が発生したことは一度もありません。また、特定のユーザーにのみ影響するようです。

psでProcmailプロセスの1つをキャッチできましたが、正しいユーザーとして実行されているようです。 (このユーザーは、ジャンクフォルダーにroot所有のメールも持っています)

# 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

レシピによって処理されたメッセージが最終的にrootによって所有され、デフォルトのフォルダーに送信されるメッセージが正しい所有者になる理由を誰かが知っていますか?

メッセージが常に正しいユーザーによって所有されていることを確認するために(Procmailレシピからchownを呼び出すなどのハッキーであっても)できることはありますか?

重要な場合、ProcmailはPostixで次のように設定されています。

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

ジャンクフォルダの権限が正しいことを確認しますが、procmail.cfに次を追加することもできます。

DROPPRIVS=yes

私はprocmailの専門家ではありませんが、 この男性のエントリ によると、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の後に発生しますが、特権モードで何かを明示的に配信する場合は、特権も明示的に削除する必要があります。

5
Joe Brailsford