在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:赛勒斯,Debian的进出口
目录/ var / run / saslauthd应该由group sasl拥有。 添加Exim到sasl组应该可以做到。
/ var / run目录中的更多背景。
/ var / run用于存储守护进程的帮助文件。 这些是在后台运行的进程。 最重要的用途是存储守护进程的pid。 这使相关的启动/停止脚本在尝试停止这些进程时更容易发送终止信号。 您可能已经感觉到/ var / run中的数据非常不稳定。 因此,这个目录在每次重启时清空。
saslauthd正在自己的启动上创build这样的运行时信息。 它可以确保创build具有saslauthd预期访问权限的目录。
从saslauthd初始化脚本摘录:
# 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是正确的select。