Saslsauthdの再起動時に、/var/run/saslauthd
dirで次の権限を取得し続けます。
drwx--x---
これにより、たとえばEximはsaslauthdと話すことができません。
このように権限を変更した場合:
chmod o+x /var/run/saslauthd
..Eximはsaslauthdと再び話すことができます。ただし、私が書いたように、/etc/init.d/saslauthd restart
は、アクセス許可を710に再度変更するのに十分です。
/etc/init.d/saslauthd
スクリプトでそれを実現するものは何も見つかりませんでした。何が起きてる?
OS:Debian7.0。
このエントリについては、/ etc/groupを確認してください。
sasl:x:45:cyrus、Debian-exim
ディレクトリ/ var/run/saslauthdは、グループsaslが所有している必要があります。 Eximをsaslグループに追加するとうまくいくはずです。
/ var/runディレクトリのもう少し背景。
/ var/runは、デーモンのヘルパーファイルを保存するために使用されます。これらはバックグラウンドで実行されているプロセスです。最も顕著な使用法は、デーモンプロセスのpidを保存することです。これにより、関連する開始/停止スクリプトが、これらのプロセスを停止しようとしたときに強制終了シグナルを送信しやすくなります。/var/runのデータは非常に不安定であるとすでに感じているかもしれません。したがって、このディレクトリは再起動するたびに空になります。
saslauthdは、独自の起動時にそのようなランタイム情報を作成しています。また、saslauthdが期待するアクセス権でディレクトリを作成することを保証します。
Saslauthd initスクリプトからの抜粋:
# If there is a statoverride for the run directory, then pull
# permission and ownership information from it and create the directory.
# Otherwise, we create the directory with default permissions and
# ownership (root:sasl, 710).
if dpkg-statoverride --list $RUN_DIR > /dev/null; then
createdir `dpkg-statoverride --list $RUN_DIR`
else
createdir root sasl 710 $RUN_DIR
fi
Dpkg-statoverrideを介してsaslauthディレクトリに異なる所有者とアクセスモードを許可することさえ可能であるようです。しかし、私はそれに精通しておらず、そのような行動をお勧めしません。 saslグループにeximを追加するのは正しいことです。