我在 crontabs 中有一个 、 的作业列表user1
。user2
我想阻止 的作业user2
运行。
我尝试user2
在 中列出cron.deny
,但这只会阻止他访问他的。在中crontab
列出的作业仍会执行。user2
crontab
如何为特定用户禁用 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.
因此,只需将文件重命名为密码中没有的名称,通常给它一个后缀,如disabled
、offline
或dead
类似的。
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/user1
或user2
?并且您还想将这些用户名添加到,/etc/cron.deny
否则他们可以将这些 cron 作业添加回来
答案4
如果您想要阻止特定用户的 crontab 作业,请确保您以 root 用户身份登录,root 用户只能访问 crontab 文件。1.然后转到目录 /etc/cron.d,在此目录中您可以看到 cron.deny 文件,使用 vi 编辑器或其他编辑器输入要阻止用户的特定用户名。