到/var/adm/cron/ 下一看原来是有cron.allow和cron.deny存在,而cron.allow里面没有root用户存在,怪不得老是报错。在这里额外说明一下,根据系统不同,路径和文件名可能也不同,例如FreeBSD路径为/var/cron,文件名为allow和 deny。
crontab中的使用的cron.allow和cron.deny的文件的用法如下:
1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。
一般来说有下面几种情况
只允许root用户执行crontab:删除cron.allow和cron.deny
允许任何用户执行:建立一个空白的cron.deny文件
允许特定的用户执行:建立cron.allow文件,在里面列出特定用户的用户名,每行一个名字。
不允许特定用户执行:建立cron.deny文件,在里面列出特定用户的用户名,每行一个名字。