Dovecot não pode abrir o log após a atualização

1

Em um host do OpenSUSE Tumbleweed, atualizado esta manhã. Após a atualização e a reinicialização, todas as tentativas de iniciar o dovecot falharão com Can't open log file /var/log/dovecot: Permission denied

cat /etc/os-release inclui VERSION_ID="20180314" /usr/sbin/dovecot --version yields 2.3.0.1 (ffd8a29)

Os pacotes do Dovecot atualmente instalados começam com dovecot-2.3-1.1 e dovecot23-2.3.0.1-2.1 . Não tenho certeza de qual versão foi instalada antes da atualização, mas não poderia ter mais de uma semana. A atualização não gerou nenhum .rpmnew ou arquivos semelhantes.

Nada em /etc/dovecot mudou em mais de um ano e esse problema é novo hoje.

As linhas sem comentário de /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"
  • relaxei as permissões em /var/log/dovecot* to 777
  • relaxei as permissões em /var/log to 775
  • desativei o SELinux com setenforce 0
  • Eu desabilitei o apparmor com service apparmor stop (e confirmei com service apparmor status )
  • Tentei alterar a propriedade de /var/log/dovecot* para mail e dovecot
  • Eu renomei var/log/dovecot para var/log/dovecot.old

saída de 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

O volume não está cheio (64%).

Por que o dovecot negou permissão para abrir seu log e como eu concedo isso?

    
por ShadSterling 17.03.2018 / 19:33

1 resposta

0

Parece que o OpenSUSE atualizou o perfil apparmor padrão do dovecot para um que o impede de funcionar de várias maneiras. Evitar que o registro seja feito fora do syslog parece ser intencional, mas isso não é claramente o caso com os outros.

Para restaurar a funcionalidade, tive que adicionar permissões em vários arquivos em /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,
    

A permissão w é necessária para os logs porque o apparmor nega ac e, até onde eu sei, não há como permitir a permissão para c . Não consegui encontrar nenhuma indicação de que existe documentação com uma lista de permissões abertas, portanto, pode haver outra maneira de permitir "criar e anexar" diferente de w .

Eu usei a permissão ix para estatísticas em vez de Px porque não há apparmor.d/user.lib.dovecot.stats para incluir o arquivo correspondente em /etc/apparmor.d/local e achei melhor restringir minhas edições ao local.

Tudo isso foi anotado no OpenSUSE Bug # 1087753 , vinculado no comentário do @ Psychonaut sobre o questão; é possível que o OpenSUSE melhore os padrões em uma atualização futura.

Nada disso resolve o problema que o logging para o syslog não funciona, mas as mudanças acima parecem ter o dovecot funcionando normalmente de novo.

    
por 10.04.2018 / 18:49