禁用特定用户的 cron 作业

NOL*_*tMe 6 cron crontab

我在的crontab的职位列表user1user2。我想阻止user2运行的作业。

我试着列出user2cron.deny访问他,但这只能使他crontab。在列出的职位user2crontab仍得到执行。

如何为特定用户禁用 cron 作业?

Red*_*ick 5

蛮力!

crontab -u fred -e
%s/^/#/
:wq
Run Code Online (Sandbox Code Playgroud)

可能有一种更优雅的方法来做到这一点,但除非您一直这样做,否则请使用您拥有的锤子。


小智 5

禁用特定用户的 crontab 的最简单方法是找到她的crontab并重命名它。Debian 的cron手册页显示:

cron searches its spool  area  (/var/spool/cron/crontabs)  for  crontab
files  (which  are named after accounts in /etc/passwd); crontabs found
are loaded into memory.
Run Code Online (Sandbox Code Playgroud)

因此,只需将文件重命名为密码中没有的名称,通常是为其添加后缀,如disabledofflinedead类似名称。

mv -vi /var/spool/cron/crontabs/user2 /var/spool/cron/crontabs/user2.disabled
Run Code Online (Sandbox Code Playgroud)

在 Debian(以及 Ubuntu 等相关系统)上,这会在 中生成以下条目/var/log/syslog

(user2.disabled) ORPHAN (no passwd entry)
Run Code Online (Sandbox Code Playgroud)

确保也添加user2到文件中/etc/cron.deny,否则用户将能够为自己创建一个新的 crontab。

通过删除条目并重命名用户的 crontab 来/etc/cron.deny重新启用用户的 crontab:

mv -vi /var/spool/cron/crontabs/user2.disabled /var/spool/cron/crontabs/user2
Run Code Online (Sandbox Code Playgroud)