在 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
脚本中找到任何东西来实现这一点。这里发生了什么?
操作系统:Debian 7.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 初始化脚本的摘录:
似乎甚至可以通过 dpkg-statoverride 为 saslauth 目录允许不同的所有者和访问模式。但我对此并不熟悉,也不建议采取这种行动。将 exim 添加到 sasl 组是正确的做法。