
Linuxの/etc/crontabで実行するbashスクリプトがあります
$ 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
は、インストールする前に、更新されたバージョンのファイルをスキャンしてエラーを検出します。したがって、ファイルを直接編集するよりも安全です。