ubuntu upstart 在以非管理员用户身份登录时出现权限错误

ubuntu upstart 在以非管理员用户身份登录时出现权限错误

我有一个简单的新贵脚本:

start on started network-services

respawn
respawn limit 100 5

setuid www-data

exec node /var/testapp/app.js >> /var/log/testapp.log 2>&1

post-start exec echo "Server was (re)started on $(date)" | mail -s "Crashing Server (re)starting" [email protected]

但是因为我以“www-data”的身份运行节点应用程序,所以我没有写入权限testapp.log

解决这个问题的最佳方法是什么?

我不想预先创建以“www-data”为所有者的日志文件,因为我希望设置步骤尽可能少。我也不想使用 sudo 将应用程序作为“www-data”运行:

exec sudo -u www-data node /var/testapp/app.js >> /var/log/testapp.log 2>&1

因为当我这样做时,root 也在运行该进程。也许我错了,但我认为这是一个安全问题。如果这不是一个安全问题 - 请告诉我。

答案1

您只需在日志目录中创建另一个目录并授予 www-data 所有权即可:

sudo mkdir /var/log/testapp
sudo chown www-data:www-data /var/log/testapp

/var/log/testapp现在可以通过 www-data 写入,因此在 upstart 脚本中你将拥有:

exec node /var/testapp/app.js >> /var/log/testapp/app.log 2>&1

相关内容