我应该如何从非root的Debian Linux守护进程登录?

Joh*_*ely 32 linux logging debian root

我正在编写一个新的守护进程,它将在Debian Linux上托管.

我发现/ var/log只有root权限,因此我的守护进程无法在那里写日志文件.

但是,如果它在那里写入,它似乎将获得自动日志轮换,并且也可以像用户期望的那样工作.

守护进程编写/ var/log中出现的日志条目的推荐方法是什么,而不必以root身份运行?

守护程序是一个Web服务器,因此日志流量将类似于Apache.

Wis*_*chi 41

您应该创建一个子目录,例如/var/log/mydaemon拥有守护程序的用户所有权


sth*_*sth 13

以root身份在那里创建一个日志文件,并将文件所有者更改为webserver用户:

# touch /var/log/myserver.log
# chown wwwuser /var/log/myserver.log
Run Code Online (Sandbox Code Playgroud)

然后,如果以用户身份运行,服务器可以写入文件wwwuser.但它不会获得自动日志轮换.您必须将日志文件添加到/etc/logrotate.conf或,/etc/logrotate.d/...并在logrotate发出信号时让服务器重新打开日志文件.

您可能还会使用syslog日志记录,如果这更符合您的情况.

  • 如WiseTechi的回答所提到的那样,将日志放在子目录中会更好.如果您在/ var/log中有文件并且文件被删除,则非root进程将无法重新创建该文件 (2认同)