因此,我尝试运行 Supervisor (http://supervisord.org/) 作为非 root 用户。但是,该进程将日志输出到/var/log
root 拥有并具有 755 权限的目录。因此,以非 root 用户身份启动该进程会引发权限被拒绝错误。解决此问题的最佳做法是什么?我的一个想法是递归地将目录的组更改/var
为启动主管进程的用户的组,并授予/var
目录 775 权限。从安全角度来看,这可以接受吗?
答案1
尝试创建日志文件并使用chown
将所有权更改为适当的用户。如果可能,将日志位置更改为适当用户拥有的子目录。
我用logrotate
它来定期轮换日志。它可以在轮换日志时处理权限。
答案2
使用user=
中的指令supervisord.conf
,以便 Supervisord 以 root 身份启动,执行任何必要的文件打开,然后放弃权限。
答案3
如果还没有,您可以专门创建一个用户来运行supervisord,并使用ACL授予该用户在/var/log中的写权限。
setfacl -m u:$USER:rwx /var/log
您还可以执行诸如让您的supervisord用户成为sys成员之类的操作。(我想,我附近没有Linux机器来验证/var/log组是否具有写权限。)