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

Dovecot не может открыть журнал после обновления

На хосте OpenSUSE Tumbleweed, обновлено сегодня утром. После обновления и перезагрузки все попытки запустить dovecot заканчиваются неудачно. Can't open log file /var/log/dovecot: Permission denied

cat /etc/os-release включает VERSION_ID="20180314" /usr/sbin/dovecot --version дает 2.3.0.1 (ffd8a29)

В настоящее время установленные пакеты Dovecot начинаются с dovecot-2.3-1.1 и dovecot23-2.3.0.1-2.1. Я не уверен, какая версия была установлена ​​до обновления, но ей не могло быть больше недели. Обновление не генерировало .rpmnew или аналогичные файлы.

Ничего в /etc/dovecot изменилась более чем за год, и сегодня эта проблема является новой.

Строки без комментариев из /etc/dovecot/conf.d/10-logging.conf:

log_path = /var/log/dovecot
auth_verbose = yes
auth_verbose_passwords = no
auth_debug = no
auth_debug_passwords = no
mail_debug = yes
plugin {
}
log_timestamp = "%Y-%m%b-%d%a.%H-%M-%S.%Z"

выход ls -al /var/log/dovecot*:

-rwxrwxrwx 1 root root       10666 Aug 16  2016 /var/log/dovecot.debug
-rwxrwxrwx 1 root root        1483 Aug 16  2016 /var/log/dovecot.info
-rwxrwxrwx 1 root root 34118709509 Mar 17 12:28 /var/log/dovecot.old

Громкость не полная (64%).

Почему dovecot отказано в разрешении открыть свой журнал, и как мне это предоставить?

Похоже, OpenSUSE обновил профиль apparmor по умолчанию для dovecot до такого, который не позволяет ему функционировать несколькими способами. Предотвращение входа вне системного журнала кажется намеренным, но это не совсем так с другими.

Для восстановления работоспособности мне пришлось добавить разрешения в нескольких файлах в /etc/apparmor.d/local/:

  • usr.lib.dovecot.auth

        /run/dovecot/old-stats-user w,
    
  • usr.lib.dovecot.config

        /var/lib/dovecot/ssl-parameters.dat r,
        capability dac_read_search,
    
  • usr.lib.dovecot.log

        /var/log/dovecot w,
    
  • usr.sbin.dovecot

        /usr/lib/dovecot/stats ix,
        /var/log/dovecot w,
    

В w разрешение необходимо для журналов, потому что apparmor отрицает ac и насколько я могу судить, нет способа разрешить c. Я не смог найти никаких указаний на то, что существует документация со списком открытых разрешений, поэтому может быть другой способ разрешить «создавать и добавлять», кроме w.

Я использовал ix разрешение на статистику, а не Px потому что нет apparmor.d/user.lib.dovecot.stats включить соответствующий файл в /etc/apparmor.d/local, и я подумал, что лучше ограничить свои правки локальными.

Все это было отмечено в Ошибка OpenSUSE # 1087753, ссылка на который есть в комментарии @ Psychonaut к этому вопросу; возможно, OpenSUSE улучшит настройки по умолчанию в будущем обновлении.

Ничто из этого не решает проблему, заключающуюся в том, что запись в системный журнал не работает, но вышеуказанные изменения, похоже, снова заставили dovecot нормально работать.