
Cuando estaba haciendo /var/mail
una 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_dovecot
configuració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 s
parece 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_user
los mapas para el usuario del sistema de archivos, pero aquí es donde me quedé estancado. Se supone que es usuario mail
pero 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