部署SquirrelMail时遇Dovecot 'BAD Error in IMAP command received by server'错误求助
从你提供的错误日志来看,核心问题是Dovecot在尝试为用户testygee创建/home/testygee/mail目录时,因为权限不足失败了,具体提示missing +w perm: /home,说明要么是/home目录的权限限制了用户访问,要么是用户自身的home目录权限存在问题。
下面是分步排查和解决的方法:
1. 先诊断权限问题
首先运行命令检查/home目录的权限:
ls -ld /home
正常情况下输出应该类似这样:
drwxr-xr-x 3 root root 4096 Apr 26 17:00 /home
这个权限(755)意味着所有用户都能进入/home目录,访问自己的子目录。如果你的输出里权限是750或者更严格(比如缺少其他用户的执行权限),普通用户就没法进入/home,自然没法创建子目录。
接着检查用户testygee的home目录权限:
ls -ld /home/testygee
正常输出应该是用户testygee拥有该目录的所有权,并且具备写权限:
drwx------ 5 testygee testygee 4096 Apr 26 17:50 /home/testygee
2. 修复权限问题
情况一:/home目录权限不足
如果/home的权限不是755,执行以下命令修改:
sudo chmod 755 /home
情况二:用户home目录权限或所有权错误
如果/home/testygee的所有权不属于testygee,或者缺少写权限,执行:
sudo chown testygee:testygee /home/testygee sudo chmod 700 /home/testygee
手动创建Mail目录(可选但推荐)
为了避免Dovecot自动创建时出现问题,你可以手动创建mail目录并设置正确的权限:
sudo mkdir /home/testygee/mail sudo chown testygee:testygee /home/testygee/mail sudo chmod 700 /home/testygee/mail
3. 重启Dovecot服务
权限修复后,重启Dovecot让设置生效:
sudo systemctl restart dovecot
额外检查
确保你的Dovecot配置中,邮件存储路径设置正确。打开/etc/dovecot/conf.d/10-mail.conf,确认mail_location配置项为:
mail_location = maildir:~/mail
这和错误日志中Dovecot尝试创建的路径一致,确保配置无问题。
内容的提问来源于stack exchange,提问作者Joe Salmon

