为什么 CENTOS crontab 的 PATH 不包含/usr/sbin?

114 天前
 phpfpm

遇到的问题

研发侧发现,一个 php 脚本可以正常调用docker(podman)进行一些操作,但是经由 crontab 调度则执行失败

只说重点

  1. 发行版:腾讯云的 TencentOS Server 3.1 (TK4)
  2. 登录的 shell 的 PATH 有 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
  3. crontab 的 path 只有/usr/bin:/bin
  4. 如果缺乏/usr/sbin 会导致 podman 启动的时候无法访问到/usr/sbin/iptables

我想知道的问题

  1. crontab 的 path 没有/usr/sbin到底是为啥
  2. 在 crontab 调度 docker 启动一个临时容器做一些事情的时候,正确的姿势是什么?手动指定一下 path?
546 次点击
所在节点    CentOS
3 条回复
L4Linux
114 天前
现在的趋势是 /bin /sbin /usr/bin /usr/sbin 四合一。可能发行版开发者都认为没必要了。
lululau
114 天前
crontab 标准写法:

/bin/bash -l -c 'your commands'
julyclyde
113 天前
man crond
PAM Access Control
Cron supports access control with PAM if the system has PAM installed.
For more information, see pam(8). A PAM configuration file for crond
is installed in /etc/pam.d/crond. The daemon loads the PAM environment
from the pam_env module. This can be overridden by defining specific
settings in the appropriate crontab file.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1008854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX