更改 uid 后无法访问 crontab

更改 uid 后无法访问 crontab

我最近更改了我的 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

希望这可以帮助!

相关内容