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

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

在 saslsauthd 重新启动时,我不断获得/var/run/saslauthd目录的以下权限:

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。

答案1

检查 /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 目录使用不同的所有者和访问模式。但我对此并不熟悉,因此不建议这样做。将 exim 添加到 sasl 组是正确的做法。

相关内容