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