我应该如何从非root用户的Debian Linux守护进程登录?
问题描述:
我在写一个新的守护进程,它将在Debian Linux上托管。我应该如何从非root用户的Debian Linux守护进程登录?
我发现/ var/log只有root权限,所以我的守护进程无法写入日志文件。
但是,如果它写在那里,它会显示它会获得自动日志轮换,并且也可以按用户预期的方式工作。
建议守护进程写入出现在/ var/log中的日志条目而不必以root身份运行的建议方式是什么?
守护进程是一个web服务器,所以日志流量将类似于Apache。
答
您应该创建就像守护进程的用户所有权
答
两个选项:
- 开始为
root
,打开该文件,然后删除与setuid
权限。 (我不记得确切的系统调用权限。)如果要绑定到TCP端口80或任何低于1024的端口,则必须执行此操作。 - 创建子目录/ var/log /具有守护进程用户所有权的mydaemon,如WiseTechi said。
/var/log
下的文件不会自动旋转;相反,旋转由/etc/logrotate.conf
和/etc/logrotate.d
下的文件控制。
其更好地把日志在一个子目录WiseTechi的回答中提到。如果在/ var/log中有该文件并且该文件被删除,则非根进程将无法重新创建该文件 – 2015-09-25 17:41:47
此外,守护进程将无法记录旋转,因为它没有权限在logdir中创建新文件。 – 2017-01-09 01:35:32