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

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"
  • Я ослабил разрешения /var/log/dovecot*на777
  • Я ослабил разрешения /var/logна775
  • Я отключил SELinux с помощьюsetenforce 0
  • Я отключил apparmor с помощью service apparmor stop(и подтвердил с помощью service apparmor status)
  • Я пробовал изменить владельца на /var/log/dovecot*иmaildovecot
  • Я переименовал var/log/dovecotвvar/log/dovecot.old

выход 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 не разрешает открывать свой журнал?, и как мне его предоставить?

решение1

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

Для восстановления функциональности мне пришлось добавить разрешения в нескольких файлах /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 улучшит настройки по умолчанию в будущем обновлении.

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

Связанный контент