为什么当来宾用户登录时,此关机 shell 脚本无法在 root 的 crontab 下运行?

为什么当来宾用户登录时,此关机 shell 脚本无法在 root 的 crontab 下运行?

我有一台运行 Lubuntu 13.04 的笔记本电脑,启用了访客帐户。人们每天都会忘记关机,所以我想我只需将一行脚本放入 root 的 cron 即可解决这个问题。没用。它每天都会显示在系统日志中,就像它运行过一样,但计算机不会关闭。当另一个用户(不在 wheel 中)登录时,root 是否无法关闭机器?

Shell 脚本:

#!/bin/bash
shutdown -h now

root 的 crontab 中的行:

34 18 * * * /root/shutdownDaily.sh

该脚本是可执行的:

-rwxr-xr-x 1 root root 28 9月 9 17:47 shutdownDaily.sh*

答案1

“/sbin” 不在默认 cron PATH 中。因此您需要将其添加到那里。

你可以使用以下方法检查:

*/2 * * * * /bin/echo "$PATH" > /home/myuser/my.log

结果:

[root@localhost vagrant]# cat my.log 
/usr/bin:/bin

您还可以在 cron 发送的邮件头中看到它:

Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

相关内容