root 的默认 PATH 是
$ sudo su
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
创建/etc/cron.d/myjob后
35 * * * * tim ( date && echo $PATH && date ) > /tmp/cron.log 2>&1
/tmp/cron.log
显示 PATH 的默认值为:
/usr/bin:/bin
crontab 文件中的默认 PATH 值不是 root 的值吗?为什么?
PATH 值是谁的?
如果我在 中添加作业/etc/crontab
或在 下添加文件,默认 PATH 值是否会有所不同/etc/cronb.d/
?
在 cron 作业中指定哪个用户重要吗? (比如tim
上面的例子)
谢谢。
答案1
答案2
由于您没有提及具体的cron
实现,所以让我假设您正在谈论原始的 UNIX cron 实现。
有一个默认值PATH
(root
为/usr/sbin:/usr/bin
),另一个为非 root 用户(为/usr/bin:
)。
相关值可能会被以下条目覆盖:
PATH=
SUPATH=
在文件中/etc/default/cron
。
看:https://sourceforge.net/p/schillix-on/schillix-on/ci/default/tree/usr/src/cmd/cron/
也可以看看:http://schillix.sourceforge.net/man/man1m/cron.1m.html和http://schillix.sourceforge.net/man/man1/crontab.1.html
如果您引用克隆实现,您应该提及您想要的实现......