场景:我想阻止 www-data 使用 cron。
我已经添加了一些其他用户cron.allow
。 我希望没有其他用户的作业被执行。chmod 600
尽管如此,crontab -u www-data -e
允许我编辑它的 crontab。
那对我来说就好了。人们可以用它来检测篡改企图。无论如何创建的cron.deny
crontab 甚至都不可编辑。
crontab -u www-data -e
用户 www-data 无法使用该程序(crontab)
这是我在干净的服务器(Ubuntu 18.04)上做的第一件事。几个小时后,一个加密矿工进来,以某种方式写入/var/spool/cron/crontab/www-data
- 作业被执行。但是cron.allow
,cron.deny
仍然在原地——意思是设置被忽略。
...这不是预期的行为...
fileCrontabWww="/var/spool/cron/crontab/www-data"
echo 'MAILTO=root' > "$fileCrontabWww"
chown root:root "$fileCrontabWww"
chmod 200 "$fileCrontabWww"
作业不再执行。但我必须将其锁定为 200 个权限,因为 cron 正在以 root 身份读取文件。journalctl -u cron
显示:
cron[680]:(www-data)不安全模式(预期模式 0600)(crontabs/www-data)
那好吧。我有我需要的东西。但这是如何与 cron 一起工作以尝试强化它吗?或者用例场景从未经历过?
还有一个有趣的事实,来自https://help.ubuntu.com/community/CronHowto
请注意,如果您希望在 /etc/passwd 中输入用户,但不在 /etc/shadow 中输入用户的 crontab,则系统上未出现在 /etc/shadow 中的用户 ID 将不会有可操作的 crontab。
由于意想不到的副作用,这实际上不能用作限制性方法。
从`/etc/crontab`、`/etc/cron.d/` 和 `/var/spool/cron/crontabs/root` 下的文件之间的区别?
/var/spool/cron/crontabs 是由 crontab 命令管理的内容。
但管理工具和工作人员不知何故渐行渐远,表现出不一致的行为。这里的工作流程是怎样的?