ローカルユーザールートにメールを送信することは可能ですか?

ローカルユーザールートにメールを送信することは可能ですか?

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呼び出すため、 に送信された電子メールは最終的に ユーザーに送信されます。procmailnobodyrootnobody

Debianメーリングリストは私よりもよく説明している回避策を提案します:

postfix の独自の配信エージェントは、ルートのメールボックスに配信できますが、postfix は外部プログラム (例: procmail) をルートとしてフォークすることはありません。配信されるメールの所有者に UID を変更するか、そのユーザーがルートの場合は UID を nobody に変更します。

そのため、procmail は root のメールを配信するときに nobody として実行されます。

私は /var/spool/mail/root を /var/spool/mail/nobody にシンボリックリンクすることでこの問題を回避しています。そうすれば、root として root のメールを読むことができます。ただし、
これは推奨される方法ではないことに注意してください。ほとんどの人は、root のメールを /etc/aliases 内の別のユーザーに転送することを推奨します。

さらに上のスレッドでは、postfix ルートメールに関するFAQ:

ローカル メールの配信に procmail (または他のコマンド) を使用する場合、Postfix はメールを root として配信しません。代わりに、Postfix は procmail (または他のコマンド) を nobody として実行します。おそらく、Wietse はいつの日か Postfix を信頼し、外部コマンドを root として実行できるようになるでしょう。解決策: 特別な状況を除いて、root としてログインしてはいけないのと同じように、root としてメールを受信して​​はいけません。

メールを実際のユーザーに転送する root のメール エイリアスを作成します。

関連情報