在新贵脚本中更改用户

时间:2018-08-28 07:12:28

标签: bash sudo upstart

我有一个执行一些日志记录任务的新贵脚本。脚本 testjob.conf 如下所示:

description "Start Logging"
start on runlevel [2345]

script
  sudo -u user_name echo Test Job ran at  `date` >> /home/user_name/Desktop/jobs.log
end script

然后,我使用sudo service testjob start运行脚本,并且得到testjob stop/waiting作为结果。创建文件job.log并完成日志记录。但是该文件归root拥有。我想更改此设置,因此在this similar post中提到的命令的前面添加了sudo -u user_name部分。

但是,这似乎并不能解决问题。还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

该日志文件是由>>间接创建的,该间接运行在也启动sudo的根shell的上下文中。

尝试使sudo开始的过程创建文件,例如:

sudo -u user_name sh -c 'echo Test Job ran at  `date` >> /home/user_name/Desktop/jobs.log'

在这种情况下,以sh运行的user_name将“执行” >>间接访问。