这是在 CentOS 机器上。我试图在每天的某个时间以用户 nobody(或以最小权限的用户身份)运行脚本。这里没有人:
[root@CentOS % ~] grep "^nobody" /etc/passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
这是我在 root 的 crontab 中尝试过的:
设置环境变量 SUDO_USER=nobody
15 17 * * * sudo -u nobody /bin/bash /usr/local/bin/bashscript.sh
15 17 * * * su -c /usr/local/bin/bashscript.sh nobody
如果可能的话,我想将 crontab 条目保留在 root 的 crontab 中。我也不想欺骗用户nobody的帐户,因为我不想破坏可能依赖于这些设置的任何其他内容。如果这是症结所在,我并不反对创建另一个非特权帐户并给他们一个真正的外壳。
我也承认有点困惑。我认为这将是一个日常问题,除了我在 google-fu 中的棕色腰带没有太大帮助。
小智 5
我猜你在发布crontab -e或的内容crontab -l?
这是属于用户“root”的 crontab 文件,该文件不支持指定用户作为运行命令(因为它通常是用于安排个人作业的文件)。
看看/etc/crontab哪个是系统范围的 crontab 并且有一个额外的字段:用户字段。尝试将这样的行添加到/etc/crontab:
15 17 * * * nobody /usr/local/bin/bashscript.sh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27710 次 |
| 最近记录: |