Linux cron 作业文件权限

Linux cron 作业文件权限

我在 Amazon Linux 上遇到奇怪的 Linux cron 作业权限错误,并且在网络上找不到相关信息。

1. First I create a cron job with a regular user
[newuser@node1 home]$ crontab -e
no crontab for newuser - using an empty one
crontab: installing new crontab

2. Then I try to read the cron job file, permission deny
[newuser@node1 home]$ cat /var/spool/cron/newuser
cat: /var/spool/cron/newuser: Permission denied

奇怪的是,“newuser”是该文件的所有者,为什么“权限被拒绝”?

    Login as root.
    [root@node1 home]# cd /var/spool/cron
    [root@node1 cron]# ls -l

    -rw------- 1 newuser  newuser  47 Aug  3 08:28 newuser

    [root@node1 cron]# cat /var/spool/cron/newuser
    1 1 1 * * /usr/bin/php /tmp/scheduleJob.php

[root@node1 spool]# ll -d /var/spool/cron
drwx------ 2 root root 4096 Aug  3 08:28 /var/spool/cron

答案1

在 Linux 系统上,要访问文件,您还需要有权遍历路径中的所有目录(UNIX 权限中的执行位)。在您的情况下,/var/spool/cron权限设置为rwx------,所有者为root,因此您无法以其他用户身份遍历该目录,root并且Permission denied在尝试访问其中的内容时会出现错误。

答案2

伟大的主题,它为我指明了正确的方向。我正在修复一个已克隆的虚拟机,所有 GID 和 UID 都搞乱了。

以下是我在 RedHat 5 上修复我的问题的方法:

[root@pb-qad /]# find . -name cron.allow
./etc/cron.d/cron.allow
--ADDED mfg user

[root@pb-qad ~]# chown root:crontab /usr/bin/crontab
chown: `root:crontab': invalid group

[root@pb-qad ~]# groupadd crontab
[root@pb-qad ~]# groupmod crontab --gid 65535

[root@pb-qad ~]# chown root:crontab /usr/bin/crontab
You have new mail in /var/spool/mail/root

[root@pb-qad ~]# chmod g+s /usr/bin/crontab
[root@pb-qad ~]# ls -al /usr/bin/crontab
-rwxr-sr-x 1 root crontab 315432 Dec 11  2009 /usr/bin/crontab

[root@pb-qad ~]# usermod -a -G crontab mfg
[root@pb-qad ~]# groupmod -g 65535 crontab
groupmod: 65535 is not a unique GID

[root@pb-qad ~]# cd /var/spool/

最终修复

[root@pb-qad spool]# chown root:crontab cron
[root@pb-qad spool]# ll -al
total 476
drwxr-xr-x 16 root   root      4096 Oct  1  2009 .
drwxr-xr-x 26 root   root      4096 Mar 21 15:49 ..
drwxr-xr-x  2 root   root      4096 Dec  5  2008 anacron
drwx------  3 daemon qad       4096 Nov 16  2009 at
drwxrwxrwx  2 smmsp  smmsp    69632 Apr 25 09:25 clientmqueue
drwx-wx--T  2 root   crontab   4096 Mar 21 15:49 cron

现在,Cron 作为 mfg 用户运行!

相关内容