Re: Q. Postfix で任意のユーザー宛のメールを拒否したい
岩本といいます。
<blqjm0$5s3$1@caraway.media.kyoto-u.ac.jp>の記事において
nospam@excite.co.jpさんは書きました。
>この教えを基に、以下2通りの設定を試みました。
>
> local_recipient_maps = unix:passwd.byname $alias_maps
> local_recipient_maps = $alias_maps unix:passwd.byname
>
>上記の何れの設定も以下のような結果になりました。
>
> ・$alias_maps や $virtual_maps に記述された
> ユーザーやアドレス宛のメールは正常に受信する
>
> ・上記以外は /etc/passwd にユーザーが存在しても
> Unknown User となってしまう
> ( check_recipient_access でマッチしないものもです)
おそらく smtpd が chroot するように設定されていないでしょうか。
master.cf の中に、以下のような行があると思います。
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
chrootの所が - になっていると $queue_directory に chroot します。
そのため、$queue_directory の外にある /etc/passwd が読めないのだと思います。
対策としては
・/var/spool/postfix/etc を作り、その中に /etc/passwd をコピーする
・smtpd が chroot しないように設定する
・local_recipient_maps を設定しない(空にする)
などがあると思います。
通常は最初の /var/spool/postfix/etc/passwd を作る方法を取ると思いますが、
ユーザの追加,削除等を行った時に忘れずにコピーする必要があります。
# 自宅では、smtpd が chroot しないように設定していました
Postfix 2 以降ならば、以下のように proxymap を使うという方法もあります。
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
--
いわもと こういち(doda@cds.ne.jp)
# なるようになれ、明日もイケイケ♪
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735