我正在忙着迁移。我正在从 macOS+MacPorts 迁移到 Ubuntu+Docker
在旧系统上,我在 dovecot 配置中有这个:
mail_uid = _dovecot
mail_gid = mail
mail_privileged_group = mail
mail_access_groups = mail
我觉得这很奇怪,我认为只有理解了文档,dovecot 用户才应该在 dovecot 组中。在旧系统上,dovecot、postfix、dovenull 和 rspamd 都是邮件组的成员。
无论如何。在该系统上,cram md5 passwd 数据库(文件)具有以下权限:
drwxr-xr-x 3 root wheel 96 Feb 2 2021 .
drwxr-xr-x 22 root admin 704 Jan 4 15:17 ..
-rw-r----- 1 root mail 1234 Feb 2 2021 cram-md5.pwd
这个机制已经运行了很多年,基本上从 Mac OS X Server 开始,经历了各种 macOS 迁移。
在我的新的 Ubuntu 系统(基于 ubuntu:jammy 的容器)上,我已将此设置复制过来:
drwxr-xr-x 2 root root 4096 Jan 4 09:49 .
drwxr-xr-x 7 root root 4096 Jan 4 15:21 ..
-rw-r----- 1 root mail 1234 Feb 2 2021 cram-md5.pwd
mail_uid = dovecot
mail_gid = mail
mail_privileged_group = mail
mail_access_groups = mail
但:
Jan 04 15:40:08 auth: Error: passwd-file /etc/dovecot/etc/cram-md5.pwd:open(/etc/dovecot/etc/cram-md5.pwd) failed: Permission denied (euid=91(dovecot) egid=91(dovecot) missing +r perm: /etc/dovecot/etc/cram-md5.pwd, we're not in group 8(mail), dir owned by 0:0 mode=0755)
实际上,dovecot 是群发邮件。从容器中的 /etc/group:
mail:x:8:postfix,dovecot
dovenull:x:90:
dovecot:x:91:
从容器中的 /etc/passwd 中:
dovenull:x:90:90::/home/dovenull:/usr/sbin/nologin
dovecot:x:91:91::/home/dovecot:/usr/sbin/nologin
所以,我收到这个错误让我很困惑。现在我完全陷入困境了。
我应该怎么办?
答案1
正如有人刚刚告诉我的那样:上述身份并不控制这一点,而是特定的“身份验证”身份。并且dovecot
会从身份中删除所有额外的组,除非明确告知不要这样做。因此,将dovecot
文件上的组更改为解决了该问题(并且是正确的解决方案)。