我有一个 bash 脚本,在 Linux 上的 /etc/crontab 中运行
$ 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
将在安装文件更新版本之前扫描其中的错误。因此,这比直接编辑文件更安全。