Назад | Перейти на главную страницу

борется с разрешениями 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

Пожалуйста, не мог бы кто-нибудь показать мне, как это сделать правильно. Спасибо

Вы запускаете скрипт cron от имени пользователя «admin», в то время как разрешение файловой системы разрешает только root для записи файлов.

Либо запустите задание cron от имени root, либо chown + chmod для всех файлов / папок, чтобы администратор мог писать / удалять / и т. Д.

Разрешения скрипта здесь не имеют значения, если он исполняемый. Важно то, от имени какого пользователя выполняется сценарий.

Показать запись задания cron. Это пользовательский cronjob или общесистемный?

Если вы посмотрите на разрешения файлов, которые ваши скрипты не могут удалить, вы увидите, что они 600 для пользователя root, что означает, что root и только root могут удалить эти файлы.

Либо исправьте разрешения, либо запустите свой скрипт от имени пользователя root вместо использования пользователя с правами администратора, это сделает работу