为特定用户禁用 cron 作业

为特定用户禁用 cron 作业

我在 crontabs 中有一个 、 的作业列表user1user2我想阻止 的作业user2运行。

我尝试user2在 中列出cron.deny,但这只会阻止他访问他的。在中crontab列出的作业仍会执行。user2crontab

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

答案1

蛮力!

crontab -u fred -e
%s/^/#/
:wq

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

答案2

禁用特定用户的 crontab 的最简单方法是找到她的定时任务并重命名。Debian 手册页计划任务说:

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.

因此,只需将文件重命名为密码中没有的名称,通常给它一个后缀,如disabledofflinedead类似的。

mv -vi /var/spool/cron/crontabs/user2 /var/spool/cron/crontabs/user2.disabled

在 Debian(以及相关系统,如 Ubuntu)上,这将产生以下条目/var/log/syslog

(user2.disabled) ORPHAN (no passwd entry)

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

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

mv -vi /var/spool/cron/crontabs/user2.disabled /var/spool/cron/crontabs/user2

答案3

删除/var/spool/cron/user1user2?并且您还想将这些用户名添加到,/etc/cron.deny否则他们可以将这些 cron 作业添加回来

答案4

如果您想要阻止特定用户的 crontab 作业,请确保您以 root 用户身份登录,root 用户只能访问 crontab 文件。1.然后转到目录 /etc/cron.d,在此目录中您可以看到 cron.deny 文件,使用 vi 编辑器或其他编辑器输入要阻止用户的特定用户名。

相关内容