是什么原因导致命令`crontab -e`的“权限被拒绝”?


19

以下是一些希望对您有所帮助的输出:

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

Answers:


10

是否设置/usr/bin/crontabsetgid权限?

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

如果没有,chmod g+s那么(如果需要,chown 之前


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


15

同样值得通过/ var / spool / cron / crontabs来检查权限

ls -al /var/spool/cron/crontabs 

在我的案例中,这样做表明实际上分配给crontab的用户是“ whoopsie”,我认为这意味着设置用户时会出现一些错误。

执行中...

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

完全解决了这个问题:)


1
这对我有用,但是问题是用户无法访问实际的/ var / spool / cron / crontabs目录,因此无法创建<username>文件。值得一查。
Marco Marco

2

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


1
这将显示不同的错误消息-“您($ USER)不允许使用此程序(crontab)”
user1686 2009年

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.