什么可能导致“权限被拒绝”命令“crontab -e”?

这里有一些我希望有用的输出:

nick@home-sv-1:~$ crontab -e /var/spool/cron/crontabs/nick: Permission denied nick@home-sv-1:~$ echo $EDITOR emacs nick@home-sv-1:~$ ls /var/spool/cron/crontabs ls: cannot open directory /var/spool/cron/crontabs: Permission denied nick@home-sv-1:~$ sudo ls -al /var/spool/cron/crontabs total 12 drwx-wx--T 2 root crontab 4096 2009-10-25 20:45 . drwxr-xr-x 3 root root 4096 2009-05-18 01:19 .. -rw------- 1 root root 612 2009-10-25 01:20 root 

问题:

Crontab没有setguid,并且不在crontab组中。

 home-sv-1:~# ls -al /usr/bin/crontab -rwxr-xr-x 1 root root 32048 2009-08-30 03:34 /usr/bin/crontab 

解:

作为根…

 home-sv-1:~# chown root.crontab /usr/bin/crontab home-sv-1:~# chmod g+s /usr/bin/crontab home-sv-1:~# ls -al /usr/bin/crontab -rwxr-sr-x 1 root crontab 32048 2009-08-30 03:34 /usr/bin/crontab 

/usr/bin/crontab是否设置了setgid权限?

  -rwxr-sr-x 1 root crontab 32K 2008-09-28 14:07 / usr / bin / crontab * 

如果没有, chmod g+s (如果需要的话, 之前 chown


编辑:请注意,这只适用于Vixie克朗(大多数发行版使用); 其他守护进程(如dcron )可能使用不同的权限( setuid )。

另外值得检查一下/ var / spool / cron / crontabs的权限

 ls -al /var/spool/cron/crontabs 

在我的情况下这样做表明,实际上分配给crontab的用户是'whoopsie',我认为这意味着在设置用户时出现了一些错误。

表演…

 chown <username> /var/spool/cron/crontabs/<username> 

修正了这个完全:)

检查/etc/cron.allow和/etc/cron.deny文件。 如果这些文件存在,请确保您的用户名在/etc/cron.allow中。