421 fopen(‘users/assign’) failed (#5.7.10) Permission denied
状況
Pleskで管理しているメールサーバーにて発生。
SMTPサーバー、POPサーバーは起動している。外部から接続もできる。メールの送受信にだけ問題が発生している。
外部からメールを送信してもメールが届かない。ログには「Jun 23 00:02:17 relaylock: /var/qmail/bin/relaylock: mail from xxx.xxx.xxx.xxx:12345 (mail.example.jp)
」が残っている。外からのメールをすべて受け付けていないようだ。
外部からSMTP接続して、同じドメインにメールを送ろうとすると、エラー「421 fopen('users/assign') failed (#5.7.10) Permission denied
」が出て送信できない。
外部へ送信はできる。
内部から内部へは送信できて、メールボックスに配送され、外からPOPで取り出せた。
対応方法
次の各ファイルのパーミッションを確認する。次の2ファイルに setuid 属性、suidビットが設定されていない場合、それが原因。
<正しい状態>
~# ls -l /var/qmail/bin/smtp_auth -r-sr-xr-x 1 root root 15172 Jun 8 12:48 /var/qmail/bin/smtp_auth ~# ls -l /var/qmail/plugins/chkrcptto -r-sr-xr-x 1 root root 15788 Jun 8 12:48 /var/qmail/plugins/chkrcptto
<ダメな状態>
~# ls -l /var/qmail/bin/smtp_auth -r-xr-xr-x 1 root root 15172 Jun 8 12:48 /var/qmail/bin/smtp_auth ~# ls -l /var/qmail/plugins/chkrcptto -r-xr-xr-x 1 root root 15788 Jun 8 12:48 /var/qmail/plugins/chkrcptto
<修正するコマンド>
setuid属性をセットすると解決する。
~# chmod u+s /var/qmail/bin/smtp_auth ~# chmod u+s /var/qmail/plugins/chkrcptto
なお、users/assign のパーミッションはこれで正しい。
~# ls -ld /var/qmail/users/assign -rw------- 1 root root 738 Sep 24 16:53 /var/qmail/users/assign
結局なんだったのか
Plesk製造元Parallelsのサポートサイトに情報があった。
http://kb.parallels.com/en/5619
詳細はやはり不明。「PleskのUpgradeのときに発生するかも」という程度のことしかわからなかった。
コメント