/ var / run / saslauthd在重新启动时更改权限

在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。