Amazon EC2 Ubuntu 和 upstart 日志记录权限

Amazon EC2 Ubuntu 和 upstart 日志记录权限

我已经在 Amazon Ec2 Ubuntu 12.04 TLS 实例上设置了这个 upstart 脚本,用于执行 node.js 应用程序。该脚本使用 setuid 和 setgid。

它在不使用和的情况下工作正常setuidsetgid但是当我使用它们时,如果失败,因为由于权限被拒绝错误,该过程无法写入/var/log/myapp.log(这是我想要用于日志记录的路径)。

/proc/self/fd/9: 13: /proc/self/fd/9: cannot create /var/log/noommi.log: Permission denied

我使用默认用户“ubuntu”来执行脚本,该用户与我登录机器时使用的用户相同(我知道最好使用其他用户)。我看到 ubuntu 用户属于 adm 组,该组包含在 /var/log 中。通过执行ls -la(使用“ubuntu”用户),这是 var/log 的结果:

drwxr-xr-x 11 root      root      4096 Oct 15 12:05 .
drwxr-xr-x 12 root      root      4096 Oct 12 21:44 ..

这是脚本 /etc/init/myapp.conf 的内容:

description "start and stop myapp"
version "1.0"
author "Me!"

start on filesystem and started networking
respawn


env HOME=/home/ubuntu/myapp

#Run the script using ubuntu user instead of root.
setuid ubuntu
setgid ubuntu
script

export HOME=$HOME
chdir $HOME
env PATH=/usr/local/bin:/usr/bin:/bin
env NODE_ENV=development

exec /usr/bin/node server.js > /var/log/myapp.log 2>&1

end script

我应该怎么做才能让脚本将日志写入 /var/log?

答案1

> /var/log/myapp.log 2>&1从执行中删除

upstart 将记录到文件:(/var/log/upstart/myapp.log所有者:root)

相关内容