El transporte Dovecot_delivery no puede escribir en maildir

El transporte Dovecot_delivery no puede escribir en maildir

Cuando estaba haciendo /var/mailuna copia de seguridad, cometí un error y no copié los permisos correctamente.

Ahora veo el siguiente mensaje en mis registros:

2023-09-17 03:10:26 1qhiB0-000Jx1-CI == [email protected] 
R=dovecot_user T=dovecot_delivery defer (-1): 
Tainted '/var/spool/mail/domain.com/username' 
(file or directory name for dovecot_delivery transport) not permitted

Mi /etc/exim4/conf.d/transport/30_exim4-config_dovecotconfiguración de transporte se ve así:

dovecot_delivery:
     driver = appendfile
     maildir_format = true
     directory = /var/spool/mail/$domain/$local_part
     create_directory = true
     directory_mode = 0770
     mode_fail_narrower = false
     message_prefix =
     message_suffix =
     delivery_date_add
     envelope_to_add
     return_path_add
     user = mail
     group = mail
     mode = 0660
     allow_symlink = true

Y permisos en el buzón real:

/var/mail/domain.com# getfacl username
# file: username
# owner: mail
# group: mail
# flags: -s-
user::rwx
group::rwx
other::---

Simplemente estoy oscilando entre exim y dovecot mans en este punto, pero no puedo encontrar una buena respuesta. Esto sparece un poco preocupante, pero según tengo entendido, simplemente indica que los permisos deben heredarse para el grupo.

Supongo que necesito descubrir cómo se asignan dovecot_userlos mapas para el usuario del sistema de archivos, pero aquí es donde me quedé estancado. Se supone que es usuario mailpero supongo que estoy equivocado.

¿Alguna sugerencia sobre qué leer/comprobar?

Respuesta1

Resulta que se introdujo un cambio importante en Exim 4.94 con respecto a la gestión de variables contaminadas.

Técnicamente se supone que hay una forma de marcar una variable como verificada, pero no tengo tiempo para leer el interminable y asombrosamente complicado manual.

Por lo tanto terminé con una solución hacky:

dovecot_delivery:
     driver = appendfile
     maildir_format = true
     create_directory = true
     directory_mode = 0770
     directory = ${lookup mysql{SELECT CONCAT('/var/mail/',domains.fqdn, '/', mailboxes.local_part) AS directory FROM domains,mailboxes WHERE \
                   mailboxes.local_part='${quote_mysql:$local_part}' AND \
                   mailboxes.active=1 AND \
                   mailboxes.domain_id=domains.id AND \
                   domains.fqdn='${quote_mysql:$domain}' AND \
                   domains.active=1}}

     mode_fail_narrower = false
     delivery_date_add = true
     envelope_to_add = true
     return_path_add = true
     group = mail
     mode = 0660
     allow_symlink = true

información relacionada