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

На хосте OpenSUSE Tumbleweed, обновлено сегодня утром . После обновления и перезагрузки каждая попытка запустить dovecot завершается неудачно с Невозможно открыть файл журнала / 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
  • Я отключил устройство с помощью остановки приложения службы (и подтверждено с помощью статуса устройства службы )
  • Я пробовал сменить владельца / var / log / dovecot * на mail и dovecot
  • . Я переименовал 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
задан 17 March 2018 в 20:33
1 ответ

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

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

  • usr.lib.dovecot.auth

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

     /var/lib/dovecot/ssl-параметры.dat r,
     возможность dac_read_search,
    
  • usr.lib.dovecot.log

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

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

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

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

Всё это было отмечено в ошибке OpenSUSE #1087753, связанной в комментарии @Psychonaut'а по этому вопросу; возможно, OpenSUSE улучшит настройки по умолчанию в будущем обновлении. Ничего из этого не решает проблему, что протоколирование в syslog не работает, но вышеприведенные изменения, похоже, снова привели к нормальной работе dovecot.

.
0
ответ дан 4 December 2019 в 04:10

Теги

Похожие вопросы