
バックアップを作成しているときに/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 の間で迷っているところですが、良い答えが見つかりません。これはs
少し心配ですが、私の理解では、単にグループの権限を継承する必要があることを示しているだけです。
ファイルシステム ユーザーをどのようにマップするかを調べる必要があると思いますがdovecot_user
、ここで行き詰まっています。ユーザーであるはずですmail
が、間違っているようです。
何を読んで/確認したらよいか、何か提案はありますか?
答え1
汚染された変数の管理に関して、Exim 4.94 で重大な変更が導入されたことが判明しました。
技術的には、変数を検証済みとしてマークする方法があるはずですが、終わりのない、不気味なほど複雑なマニュアルを読む時間はありません。
そのため、私はハッキーな解決策に行き着きました:
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