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.1dovecot23-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/log775
  • 我已经禁用了 SELinuxsetenforce 0
  • 我已使用 禁用了 apparmor service apparmor stop(并确认了service apparmor status
  • 我尝试过将所有权更改/var/log/dovecot*maildovecot
  • 我已将其重命名var/log/dovecotvar/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 似乎已将 dovecot 的默认 apparmor 配置文件更新为阻止其以多种方式运行的配置文件。阻止其在 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 能够再次正常运行。

相关内容