Ответ 1
Вы уверены, что используете эту команду как root...?;) Поэтому, пожалуйста, проверьте, есть ли в системе AppArmour - если да, проверьте конфигурацию или удалите ее (случай Ubuntu).
Попытка использовать logrotate, и я получаю следующую ошибку при запуске журнала rotate script для определенного определения в logrotate.d
error: error creating state file /var/lib/logrotate/status: Permission denied
/var/lib/logrotate$ ls -lah
total 12K
drwxr-xr-x 2 root root 4.0K 2012-05-11 06:25 .
drwxr-xr-x 43 root root 4.0K 2012-05-18 08:07 ..
-rw-r--r-- 1 root root 911 2012-05-25 06:25 status
Я не коснулся этого пути, поэтому мне интересно, почему это создало бы ошибку по умолчанию...
Вы уверены, что используете эту команду как root...?;) Поэтому, пожалуйста, проверьте, есть ли в системе AppArmour - если да, проверьте конфигурацию или удалите ее (случай Ubuntu).
НЕ chmod
файл состояния по умолчанию 666. Если вы chmod
, то каждый пользователь системы может использовать logrotate
как вектор атаки.
Просто определите (приватный) файл состояния для своего пользователя (предположим, что вы пытаетесь запустить его как обычный пользователь) с опцией [-s|--state file]
.
В crontab была эта строка:
* * * * * root logrotate -s /var/run/logrotate.status /etc/logrotate.conf
Несмотря на то, что он выполнялся как root, я не мог избавиться от ошибки "ошибка: ошибка создания файла состояния /var/run/logrotate/status: Permission denied".
Итак, я просто использовал другой каталог:
* * * * * root /usr/sbin/logrotate -s /var/log/logrotate.status -v /etc/logrotate.conf >/tmp/logrotate.out 2>&1
Использовал идею отладки https://serverfault.com/info/762587/daily-logrotate-error-creating-unique-temp-file-permission-denied, но изменил ее, чтобы выходной файл не увеличивался бесконечно, что было бы иронично.
Подробный режим не предоставил никакой дополнительной информации в этом случае, кстати, именно тот файл конфигурации, который он читал, и одно и то же сообщение об ошибке. Но лучше было иметь выход в этом файле, а не в/var/mailspool.