изменение пользователя в сценарии upstart - PullRequest
0 голосов
/ 28 августа 2018

У меня есть сценарий 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. Файл jobs.log создан, и регистрация завершена. Однако файл принадлежит пользователю root. Я хотел изменить это и, следовательно, добавил sudo -u user_name часть перед командой, упомянутой в этом аналогичном посте .

Однако, похоже, это не сработало. Есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 28 августа 2018

Файл журнала создается по перенаправлению >>, которое запускается в контексте корневой оболочки, которая также запускается sudo.

Попробуйте сделать процесс, который sudo начинает создавать файл, например с:

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

В этом случае sh, работающий как user_name, «выполнит» перенаправление >>.

...