我无法让 DoveCot 在多个域和用户中的一个域上运行。其他所有域都运行正常。尝试连接到此用户的邮箱时,我收到服务器错误“发生内部错误”,并在系统邮件日志中发现以下消息:
4 月 14 日 08:57:30 服务器 dovecot[902917]: imap(@<domain.com>)<908694>: 错误: chdir(/home/<unix_user>/imap/<domain.com>//) 失败: 权限被拒绝 (euid=1004(somename) egid=12(mail) 缺少 +x perm:/home/<unix_user>, 我们不属于组 1001(access), 目录归 1007:1001 拥有模式=0710)
我使用 DirectAdmin 创建了 Unix 用户、域和邮箱。
我已经尝试过 $ sh /usr/local/directadmin/scripts/set_permissions.sh all(以 root 身份运行),但无济于事。我与另一个用户比较了所有邮件相关文件(/home/<unix_user>/imap/... 和 /etc/virtual/...)的所有权限,一切正常。没有发现任何差异。
我使用的是 Almalinux 8.9 和 DirectAdmin 1.661。
有什么建议我应该如何找到这个问题的原因?
答案1
我不知道 dovecot 安装如何工作,以及它正常运行时使用哪些用户,因此请注意,下面建议的更改可能会产生安全后果或破坏您的服务器。
failed: Permission denied (euid=1004(somename) egid=12(mail) missing +x perm: /home/<unix_user>, we're not in group 1001(access), dir owned by 1007:1001 mode=0710)
因此,用户1004:12
( somename:mail
) 尝试将目录切换到/home/<unix_user>
属于 的目录1007:1001
。
为什么somename
( ) 与( )1004
不一样对我来说是个谜。但如果这是正确的,那么你就有 2 个解决方案。unix_user
1007
要么将 的组所有权更改为/home/<unix_user>
( mail
) 12
,要么使其成为( ) 组somename
的成员。后者似乎是可行的,因为“ ”表明我们应该加入该组。access
1001
we're not in group 1001(access)
usermod -a -G access somename
您可能必须重新启动 dovecot,或者重新启动您的邮件服务器。
然后我与另一个用户比较了所有邮件相关文件 (/home/<unix_user>/imap/... 和 /etc/virtual/...) 的权限,发现一切正常。没有发现任何差异。
错误消息仅提到/home/unix_user
不是/home/unix_user/imap
。检查imap
无关紧要。