Bug 31638

Summary: logrotate отказывается выполнять ротацию, если owner и/или group отличны от root
Product: Sisyphus Reporter: anton
Component: logrotateAssignee: Alexey Gladkov <legion>
Status: CLOSED DUPLICATE QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: lav, ldv, legion
Version: unstable   
Hardware: all   
OS: Linux   

Description anton 2015-12-17 17:37:17 MSK
Когда-то все было хорошо и светило солнце, а потом с питерским дождем пришло обновление logrotate 3.9.1-alt2, после которого ротация фактически прекратилась вот с какой ошибкой (пример одной из многих):

error: skipping "/var/log/jetty/jetty-console.log" because parent directory has insecure permissions (it's not owned by "root"); consider using "su" directive in config file to tell logrotate which user/group should be used for rotation.

Действительно:

# ls -ld /var/log/jetty/
drwxr-xr-x 2 jetty jetty 4096 авг 11  2014 /var/log/jetty/

Таким образом, добавив опцию "su jetty jetty" в /etc/logrotate.d/jetty6 ошибка ушла, но заметим, что таких "ошибок" мне выдалось на-гора за все службы, чьи логи ротируются на данной машине (и это не единственная машина): apache, mysql, mwserve и т.п. - получается, что нужно или дополнять logrotate-файлы в соответствующих пакетах, либо заставить сам logrotate отбросить гордость и insecur'но, но МОЛЧА заротировать то, что есть, как это было раньше.
Comment 1 Dmitry V. Levin 2015-12-17 17:43:57 MSK
Давайте исправим пакеты, чтобы они перестали нарушать https://www.altlinux.org/Secure_Packaging_Policy
Comment 2 anton 2015-12-17 18:53:36 MSK
(В ответ на комментарий №1)
> Давайте исправим пакеты, чтобы они перестали нарушать
> https://www.altlinux.org/Secure_Packaging_Policy

Ошибка возникла и в корректном случае с mysql:

error: skipping "/var/lib/mysql/log/*" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

Однако, уточнил, что это сообщение было в версии logrotate 3.9.1-alt1 и сейчас действительно утратило силу: -alt2 - ОК.

Вся эта бага - дубликат #31623 и решение ясно: или применяем policy-правило, или пишем 'su <user> <group>' в конфиг.

*** This bug has been marked as a duplicate of bug 31623 ***