乌班图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 审核日志。