我最近更改了我的 Linux 帐户的 uid(进行此更改的原因在于需要有一个精确的 uid 来访问已安装驱动器上的文件)。从那时起,我就无法访问我的 crontab。输入以下内容后:
crontab -e
我收到错误信息:
crontabs/my_login/: fopen: Permission denied
我调查了与文件 /usr/bin/crontab 相关的权限,它是:
-rwxr-xr-x 1 root my_login 35984 Feb 9 2013
但是,如果我查看 my_login 的 id,我会得到:
uid=11375(my_login) gid=1000(my_login) groups=1000(my_login),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),107(lpadmin),110(sambashare)
我可以看到 gid 似乎有问题,但我不知道从现在开始该做什么......
答案1
您对文件的权限不正确crontab
。它应该是这样的:
-rwxr-sr-x 1 root crontab 35984 Feb 9 2013 /usr/bin/crontab
要设置您的crontab
上述权限,首先更改所有权:
sudo chown root:crontab /usr/bin/crontab
然后设置权限:
sudo chmod 2755 /usr/bin/crontab
这应该会为您设置crontab
正确的运行权限。
编辑:
另外,查看一下/var/spool/cron/crontabs/
文件夹,您应该会看到类似以下内容:
terrance@terrance-ubuntu:~$ sudo ls -al /var/spool/cron/crontabs/
total 16
drwx-wx--T 2 root crontab 4096 Dec 17 22:08 .
drwxr-xr-x 3 root root 4096 Dec 1 07:24 ..
-rw------- 1 root crontab 1185 Dec 17 22:08 root
-rw------- 1 terrance crontab 1130 Dec 17 21:47 terrance
注意你的用户名。如果没有正确的所有权,请输入以下内容进行更改:
sudo chown username:crontab /var/spool/cron/crontabs/username
如果需要在该文件上设置权限:
sudo chmod 600 /var/spool/cron/crontabs/username
希望这可以帮助!