Dovecot_delivery 传输无法写入 maildir

Dovecot_delivery 传输无法写入 maildir

当我进行/var/mail备份时,我搞砸了并且没有正确复制权限。

现在我在日志中看到以下消息:

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

我的/etc/exim4/conf.d/transport/30_exim4-config_dovecot传输配置如下:

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

以及实际邮箱的权限:

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

我现在只是在 exim 和 dovecot mans 之间犹豫不决,但我找不到好的答案。这s看起来有点令人担忧,但据我理解,它只是表示权限应该被该组继承。

我想我需要找出dovecot_user文件系统用户的映射方式,但我卡在这里。它应该是用户,mail但我猜错了。

有什么建议可以阅读/检查什么吗?

答案1

事实证明,Exim 4.94 在污染变量管理方面引入了重大变化。

从技术上讲,应该有办法将变量标记为已验证,但我没有时间阅读无休止且复杂的手册。

因此我最终找到了一个 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

相关内容