再次为 Linux 权限问题而苦苦挣扎

再次为 Linux 权限问题而苦苦挣扎

我的 Centos 服务器上有一个脚本,用于删除新创建的日志文件。它包含以下内容:

cd /var/log/kloxo
rm maillog-* courier-* pureftp.log-* smtp.log-*

..该脚本具有以下所有权/权限:

-bash-3.2# ls -l /home/admin/cronscripts/logDeleteCronJob.sh
-rwxr-xr-x 1 root root 79 Jan 16 12:26 /home/admin/cronscripts/logDeleteCronJob.sh

..目标文件夹如下所示:

drwxr-xr-x 2 root     root        4096 Jan 20 03:39 kloxo

.. 文件夹内容如下所示(这些权限在创建日志文件时由服务器自动设置):

-bash-3.2# ls -l /var/log/kloxo/
total 562064
-rw-r--r-- 1 root root 127423120 Jan 20 08:57 courier
-rw-r--r-- 1 root root 127145668 Jan 19 03:42 courier-1
-rw-r--r-- 1 root root 127375976 Jan 20 03:39 courier-2
-rw------- 1 root root  49875972 Jan 20 08:55 maillog
-rw------- 1 root root  49699233 Jan 19 03:42 maillog-1
-rw------- 1 root root  49857831 Jan 20 03:38 maillog-2
-rw------- 1 root root   7925642 Jan 20 08:58 pureftpd.log
-rw-rw-r-- 1 root root  11889944 Jan 20 08:57 smtp.log
-rw-r--r-- 1 root root  11842503 Jan 19 03:42 smtp.log-1
-rw-r--r-- 1 root root  11884360 Jan 20 03:39 smtp.log-2

问题是脚本按计划执行但无法删除文件,并且我收到来自 cron 守护程序的以下电子邮件:

rm: cannot remove `maillog-1': Permission denied 
rm: cannot remove `courier-1': Permission denied 
rm: cannot remove `pureftp.log-*': No such file or directory 
rm: cannot remove `smtp.log-1': Permission denied

有人能告诉我如何正确执行此操作吗?谢谢

答案1

您以用户“admin”的身份运行 cron 脚本,而文件系统权限仅允许 root 写入文件。

以 root 身份运行 cron 作业,或者 chown+chmod 所有文​​件/文件夹,以便管理员可以写入/删除/等。

答案2

只要脚本可执行,其权限在这里并不重要。重要的是脚本执行的用户。

显示 cron 作业条目。这是用户 cron 作业还是系统范围的 cron 作业?

答案3

如果您查看脚本无法删除的文件的权限,您会发现对于用户 root,它们的权限为 600,这意味着只有 root 才能删除这些文件。

要么修复权限,要么以 root 身份运行脚本,而不是使用管理员用户,这样就可以了

相关内容