У меня есть сценарий на моем Сервер 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
Кто-нибудь может показать мне, как это сделать это правильно. Спасибо
Вы запускаете скрипт крона как пользователь "администратор", в то время как разрешение файловой системы только разрешает корню писать файлы.
Или выполните задание крона как корень или chown+chmod все файлы/папки так, чтобы администратор мог писать/удалять/и т.д.
При рассмотрении полномочий файлов сценариям не удается удалить, Вы будете видеть, что они 600 для пользовательского корня, что означает, что корневой и только базируются, может удалить те файлы.
Или исправьте полномочия или запустите свой скрипт как корень вместо того, чтобы использовать администраторского пользователя, это сделает задание