用户x无法使用该程序(crontab)


9

Ubuntu 14.04

我不了解为服务(无登录)帐户(名为curator)设置crontab时看到的行为。

当我以root用户身份登录时,这是我得到的:

# crontab -u curator -l
The user curator cannot use this program (crontab)

但是,当我切换到该用户的帐户时,它可以正常工作:

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

有一个空/etc/cron.allow文件,并没有/etc/cron.deny在系统上的文件。根据man crontab

如果存在/etc/cron.allow文件,则必须在其中列出您(每行一个用户),以便允许使用此命令。如果/etc/cron.allow文件不存在,但/etc/cron.deny文件确实存在,则必须在/etc/cron.deny文件中未列出您才能使用此命令。

当我运行第一个命令时,我理解该错误,但是crontab当我明确切换到用户帐户时,为什么它允许我运行?

将用户添加到/etc/cron.allow使两个命令都能正常工作。


1
它只是说没有crontab。如果您尝试通过crontab -e(作为用户策展人)创建一个,将会发生什么?
Fiximan

1
无法在无所事事的trusty64映像上重现此问题;用空cron.allow文件,无论是root crontab -u vagrant -lcrontab -l作为vagrant结果的are not allowed to use this program消息(这是从你报价消息不同)。
2016年

Answers:


11

我检查了crontab的源代码,发现如果用户无法打开/etc/cron.allow(例如,在之后chmod 0 /etc/cron.allow),则crontab认为允许用户使用它(好像cron.allow不存在)。

但是root可以读取任何文件,因此crontab检查代码可以按预期工作。因此,我建议您检查的第一权限/etc/cron.allow,以及SELinux / AppArmor审核日志。


似乎就是这样-我已经确认chmod -r /etc/cron.allow确实导致了我的Ubuntu 14.04系统上所描述的行为
steeldriver

发现!将其更改为两者并看到消息后,我的/etc/cron.allow权限为。然后,添加到两者之后可以使用策展人的crontab。600644rootcuratornot allowed to use this program (crontab)curator/etc/cron.allow
亚当·米恰里克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.