crontab 在 fopen 中列出或编辑结果:权限被拒绝

sta*_*onk 14 permissions cron ubuntu-10.10

最近,配置为从用户的 crontab 运行的作业停止执行。尝试为用户列出或编辑 crontab 时,结果是:

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

user@host:~$ crontab -e
crontabs/user/: fdopen: Permission denied
Run Code Online (Sandbox Code Playgroud)

显然它与权限相关,但我不确定权限是如何更改的——更重要的是,它们应该设置为什么。

/usr/bin/crontab 上的权限:

$ ll /usr/bin/crontab
-rwxr-sr-x 1 root libuuid 35896 Aug 24  2010 /usr/bin/crontab*
Run Code Online (Sandbox Code Playgroud)

/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/
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

发行信息:

# cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
Run Code Online (Sandbox Code Playgroud)

mdp*_*dpc 8

/usr/bin/crontab 上的权限应该是:

 owner=root
 group=root
 perms= 4755  (rws rx rx)
Run Code Online (Sandbox Code Playgroud)

您的 /usr/bin/crontab 拥有错误的组所有者。此外,它具有必须具有的 sgid 和 NOT suid。

  • 我在删除使用不同 UID 重新创建用户后遇到了这个问题 - 这为我修复了它:http://askubuntu.com/questions/710671/cannot-access-crontab-after-changed-uid (3认同)

Gau*_*ier 5

如果您具有超级用户访问权限,则可以编辑您的用户 crontab,而无需修改权限:

$ sudo crontab -u username -e
Run Code Online (Sandbox Code Playgroud)

我以为您可以在没有 sudo 的情况下编辑您的用户 crontab,但是即使将自己添加到该crontab组后,我也遇到了与您相同的权限问题。我的用户的 crontab ( /var/spool/cron/crontabs) 中的权限是-rw-------,组是crontab