Cron

什麼可能導致命令“crontab -e”的“權限被拒絕”?

  • September 3, 2019

以下是一些我希望對您有所幫助的輸出:

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/crontabsetgid權限?

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

如果沒有,chmod g+s它(如果需要,在此chown 之前


編輯:請注意,這只適用於 Vixie Cron(大多數發行版都使用);其他守護程序(例如dcron)可能使用不同的權限(setuid)。

此外,值得檢查 /var/spool/cron/crontabs 的權限

ls -al /var/spool/cron/crontabs 

在我的情況下,這樣做表明實際上分配給 crontab 的使用者是“whoopsie”,我認為這意味著設置使用者時出現了一些錯誤。

表演…

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

完全解決了這個問題:)

引用自:https://serverfault.com/questions/78159