谁的 PATH 值是 crontab 文件中的默认 PATH 值?

Tim*_*Tim 0 cron path

root 的默认路径是

$ sudo su
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Run Code Online (Sandbox Code Playgroud)

创建 /etc/cron.d/myjob 后

35 * * * * tim ( date && echo $PATH && date ) > /tmp/cron.log 2>&1
Run Code Online (Sandbox Code Playgroud)

/tmp/cron.log 显示 PATH 的默认值是:

/usr/bin:/bin
Run Code Online (Sandbox Code Playgroud)

crontab 文件中的默认 PATH 值不是 root 的值吗?为什么?

PATH 值是谁的?

如果我在其中添加作业/etc/crontab或在/etc/cronb.d/.

在 cron 作业中指定哪个用户重要吗?(如tim上面的例子)

谢谢。

Ste*_*itt 5

这取决于cron您使用的版本。我好像记得你用的是 Debian;cron设置了许多变量,如下所示:

cron(8)守护程序会自动设置几个环境变量。SHELL被设定为/bin/sh,与LOGNAMEHOME从被设定/etc/passwd的线crontab的拥有者。PATH设置为"/usr/bin:/bin"HOME, SHELL, 并且PATH可能会被 中的设置覆盖crontabLOGNAME是运行作业的用户,不能更改。

(见crontab详细信息手册页。)