
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 の独自の配信エージェントは、ルートのメールボックスに配信できますが、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 のメール エイリアスを作成します。