Dovecot_delivery-Transport kann nicht in Maildir schreiben

Dovecot_delivery-Transport kann nicht in Maildir schreiben

Beim Erstellen /var/maildes Backups habe ich einen Fehler gemacht und die Berechtigungen nicht richtig kopiert.

Jetzt sehe ich die folgende Meldung in meinen Protokollen:

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

Meine /etc/exim4/conf.d/transport/30_exim4-config_dovecotTransportkonfiguration sieht folgendermaßen aus:

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

Und Berechtigungen für das eigentliche Postfach:

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

Ich schwanke an dieser Stelle einfach zwischen Exim und Dovecot Mans, kann aber keine gute Antwort finden. Das ssieht ein wenig besorgniserregend aus, aber so wie ich es verstanden habe, bedeutet es einfach, dass Berechtigungen für die Gruppe vererbt werden sollten.

Ich glaube, ich muss herausfinden, wie dovecot_userman für Dateisystembenutzer zuordnet, aber hier stecke ich fest. Es sollte „Benutzer“ heißen, mailaber ich glaube, das ist falsch.

Irgendwelche Vorschläge, was ich lesen/überprüfen sollte?

Antwort1

Es stellte sich heraus, dass in Exim 4.94 eine gravierende Änderung im Hinblick auf die Verwaltung verdorbener Variablen eingeführt wurde.

Technisch gesehen sollte es eine Möglichkeit geben, eine Variable als verifiziert zu markieren, aber ich habe keine Zeit, das endlose und unheimlich komplizierte Handbuch zu lesen.

Daher bin ich zu einer Hack-Lösung gekommen:

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

verwandte Informationen