can not chdir(clientmqueue): Permission deniedって | Summerはここです

Summerはここです

Summerという人が勝手にひとり言をつぶやくサイトですわ。

正確には以下のメッセージ。

sendmail[24334]: NOQUEUE: SYSERR(apache): can not chdir(/var/spool/clientmqueue/): Permission denied

これは手ごわかった。

そもそもLinuxマシーンにバグトラッカーのMantisを入れてたんだった。
adminで新規ユーザを追加するとそのユーザにメールが飛ぶはずなんだがなぜか飛ばない。
/var/log/maillogを見ると上記エラーだったというわけです。

chdirできないなら単にディレクトリのパーミッションじゃん、と思って調べたのだがどうも間違ってはいない模様。
結局その日は直すのあきらめて次の日改めて調べてみたら/var/log/messagesに答えがあった。

SELinux is preventing the http daemon from sending mail. For complete SELinux messages. run sealert -l 9a1934de-f8df-46a5-9706-5044d8795fc3

なんとSELinuxだったのだ。
なんというセキュリティ魂!

以下のコマンドを叩いてみると謎が解けた。

% sealert -l 9a1934de-f8df-46a5-9706-5044d8795fc3

(中略)

If you want httpd to send mail you need to turn on the httpd_can_sendmail
boolean: "setsebool -P httpd_can_sendmail=1"

まあ、これだけじゃ終わらなかったんだが、犯人はSELinuxに決定ってことで。

これ、ググってもわからなかったんだよなあ。