强化 cron:为什么 /var/spool/cron/crontab 中的作业尽管 cron.allow/cron.deny 仍在运行?

强化 cron:为什么 /var/spool/cron/crontab 中的作业尽管 cron.allow/cron.deny 仍在运行?

场景:我想阻止 www-data 使用 cron。

我已经添加了一些其他用户cron.allow。 我希望没有其他用户的作业被执行。chmod 600

尽管如此,crontab -u www-data -e允许我编辑它的 crontab。
那对我来说就好了。人们可以用它来检测篡改企图。无论如何创建的cron.denycrontab 甚至都不可编辑。

crontab -u www-data -e

用户 www-data 无法使用该程序(crontab)

这是我在干净的服务器(Ubuntu 18.04)上做的第一件事。几个小时后,一个加密矿工进来,以某种方式写入/var/spool/cron/crontab/www-data- 作业被执行。但是cron.allowcron.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 命令管理的内容。

但管理工具和工作人员不知何故渐行渐远,表现出不一致的行为。这里的工作流程是怎样的?

相关内容