
У меня есть скрипт bash, который я запускаю в /etc/crontab на Linux.
$ uname -a
Linux mymachine.com 3.4.76-65.111.amzn1.x86_64 #1 SMP Tue Jan 14 21:06:49 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Скрипт bash содержит строку
sudo shutdown -r 5
Однако, когда задание cron выполняется (как пользователь с именем «myuser»), машина не перезагружается, и вместо этого я нахожу это в журналах
[sudo] password for myuser:
Что мне нужно сделать, чтобы дать этому пользователю возможность перезагружать из cron? Запустить этот скрипт от имени другого пользователя не получится.
решение1
Вам нужна строка /etc/sudoers
следующего содержания:
myuser ALL = NOPASSWD: /sbin/shutdown
В этой NOPASSWD
части говорится sudo
, что нужно myuser
запустить команду выключения, указав пароль.
Чтобы добавить такую строку /etc/sudoers
, выполните (как root):
sudoedit /etc/sudoers
sudoedit
просканирует обновленную версию файла на наличие ошибок перед его установкой. Следовательно, это безопаснее, чем редактирование файла напрямую.