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

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

乌班图14.04

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

当我以 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 来源,发现如果用户无法打开/etc/cron.allow(例如在 后chmod 0 /etc/cron.allow),crontab 认为用户可以使用它(就好像cron.allow不存在一样)。

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

相关内容