以非特权用户身份启动 rsyslog

use*_*963 6 linux rsyslog

在 Debian 上,rsyslog 默认以 root 身份运行(由于 POSIX 兼容性)。它可以在启动后放弃特权,但更简洁的方法是以非特权用户身份启动。将 rsyslog 设置为以非特权用户身份运行的干净方法是什么?(哪个用户?)。在谷歌搜索时,我发现了 start-stop-daemon,它显然可以使守护进程以非 root 身份启动。这是这样做的方法,还是有更好的方法?

cin*_*lli 8

从 4.1.1 开始,rsyslogd提供通过在启动后冒充另一个用户和/或组来删除权限的功能。

请注意,由于POSIX标准,rsyslogd如果下面有必须绑定到网络端口的侦听器,则始终需要以root身份启动1024。例如,UDP 侦听器通常需要侦听,514因此rsyslogd需要以 root 身份启动。

如果不需要这个功能,可以rsyslog直接以普通用户的身份启动。这可能是最安全的操作方式。但是,如果需要以 root 身份启动,您可以使用$PrivDropToGroup$PrivDropToUserconfig 指令指定rsyslogd初始化后应删除的组和/或用户。一旦发生这种情况,守护程序将在没有高权限的情况下运行(当然,取决于您指定的用户帐户的权限)。

所有这些都来自rsyslog wiki,它不再可用,但仍在存档中

你应该阅读它。

  • @Patrick 这个问题似乎很清楚;“它可以在启动后放弃特权,但更简洁的方法是以非特权用户身份启动。请有人建议,将 rsyslog 设置为以非特权用户身份运行的干净方法是什么?”。这个答案说这是可能的,但没有解释如何去做 (2认同)
  • @cinelli 感觉就像我们在兜圈子;我不知道我们中的哪一个在这里遗漏了一些东西。OP 说他知道可以放弃特权,但更希望 rsyslog 从一开始就以普通用户的身份开始。你已经说过四次了,最好的方法是让它以 root 身份启动并删除特权。那*不是他想要的*;这实际上是他在他不想要的问题中所说的一件事。每个人都知道放弃特权是一种选择,但他想要一种以普通用户身份启动的方法,因此任何涉及“以root身份运行”的答案都是错误的 (2认同)