Cron

crontab 在 fopen 中列出或編輯結果:權限被拒絕

  • July 10, 2020

最近,配置為從使用者的 crontab 執行的作業停止執行。嘗試為使用者列出或編輯 crontab 時,結果是:

user@host:~$ crontab -l
crontabs/user/: fopen: Permission denied

user@host:~$ crontab -e
crontabs/user/: fdopen: Permission denied

顯然它與權限相關,儘管我不確定權限是如何更改的——更重要的是,它們應該設置為什麼。

/usr/bin/crontab 的權限:

$ ll /usr/bin/crontab
-rwxr-sr-x 1 root libuuid 35896 Aug 24  2010 /usr/bin/crontab*

/var/spool/cron/crontab 目錄的權限:

# ll /var/spool/cron/
total 12
drwxr-xr-x 3 root root    4096 Oct 12  2010 ./
drwxr-xr-x 7 root root    4096 Jun  5 20:51 ../
drwx-wx--T 2 root libuuid 4096 Jan 10  2014 crontabs/

crontab 目錄中的權限:

# ll /var/spool/cron/crontabs/
total 16
drwx-wx--T 2 root libuuid 4096 Jan 10  2014 ./
drwxr-xr-x 3 root root    4096 Oct 12  2010 ../
-rw------- 1 1017 libuuid 1120 Dec  3  2013 
-rw------- 1 root libuuid 1342 Jan 10  2014 root

發行資訊:

# cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"

/usr/bin/crontab 的權限應該是:

owner=root
group=root
perms= 4755  (rws rx rx)

您的 /usr/bin/crontab 有錯誤的組所有者。此外,它具有它必須具有的 sgid 和 NOT suid。

如果您具有超級使用者訪問權限,則可以編輯您的使用者 crontab,而無需修改權限:

$ sudo crontab -u username -e

crontab我認為您可以在不使用 sudo 的情況下編輯您的使用者 crontab,但即使在將自己添加到組之後,我也會遇到與您相同的權限問題。我使用者的 crontab( /var/spool/cron/crontabs) 中的權限是-rw-------,組是crontab

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