我在 Debian 10(无 SELinux)上使用 Dovecot 2.3.4.1 和 EncFS(encfs 版本 1.9.5)加密邮箱
基本设置是:
EncFS 安装有
encfs --public /var/encrypted-mail /var/decrypted-mail -o nonempty --verbose
邮箱设置:
/var/decrypted-mail/domain.com/[email protected]/[cur,new...]
drwx------ 8 mail mail 4096 Dec 29 2019 /var/decrypted-mail
(这些权限是递归的)
所有 dovecot 进程都以mail
用户身份运行:
mail 5194 0.0 0.0 6308 4312 ? S 14:52 0:00 dovecot/imap
尽管一切似乎都配置正确,但我无法创建新文件夹或重命名现有文件夹。
我在以下内容中收到此错误/var/log/dovecot.log
:
Jan 24 14:59:04 imap([email protected])<6010><Us21sxWS5OZaC6Ex>: Error: Couldn't create mailbox list lock /var/decrypted-mail/domain.com/[email protected]/mailboxes.lock: file_create_locked(/var/decrypted-mail/domain.com/[email protected]/mailboxes.lock) failed: link(/var/decrypted-mail/domain.com/[email protected]/mailboxes.lockba53af3795974a32, /var/decrypted-mail/domain.com/[email protected]/mailboxes.lock) failed: Operation not permitted
该错误消息的源代码位于此处:https ://github.com/dovecot/core/blob/4d09884528e592a0fa5d38bf479b3ddab1a4a0ef/src/lib/file-create-locked.c#L109-L123
如果我没看错,它就不能使用“常规锁定”机制并尝试将临时文件符号链接到mailboxes.lock
. 这表明它可以创建临时文件mailboxes.lockba53af3795974a32
并且无法对其进行符号链接。
当我在 shell 中运行这个命令时:
sudo -u mail bash -c 'touch mailboxes.lockba53af3795974a32 && ln -s mailboxes.lockba53af3795974a32 mailboxes.lock'
它工作正常,我没有错误。
鸽舍的行为怎么可能与普通贝壳如此不同?
我唯一的解释是时间问题(之前访问过临时文件,但是为什么这没有出现在 bash 复制中?)。
我也尝试过chmod -R g+rwx /var/decrypted-mail
,以确保所有这些 gid 都不是问题,但这只是寻找修复的绝望尝试。