我正在尝试在我的个人服务器 (Ubuntu 14.0.4 LTS) 上设置 postfix+dovecot,以便从 cronjobs 向我发送一些通知。我的 /home/%user% 目录已加密,因此如果我未登录(并且该软件不支持 PAM 会话),则无法访问任何内容。
我的问题是,无论出于什么原因,我的 dovecot 安装总是尝试在 POP3 登录时挂载我的 /home/%user%,但却默默地失败了,只是没有返回任何邮件。在 /var/log/mail.err 中,我收到一系列
May 29 17:32:17 vps dovecot: pop3(u): Error: user u: Initialization failed: Namespace '': Can't create mailbox root dir /home/u/mail: Mountpoint /home/u isn't mounted. Mount it or remove it with doveadm mount remove
May 29 17:32:17 vps dovecot: pop3(u): Error: Invalid user settings. Refer to server log for more information.
同时,doveadm mount list
不显示任何挂载点。
我的邮件由 Postfix 存储在 /var/mail/%user% 中,并且我已将 dovecot 配置为据我所知使用相同的目录。
有任何想法吗?
答案1
我没有你的环境,但我引用了 Dovecot - 社区帮助 Wiki (原文中加粗部分即是如此):
注意:Dovecot 无法在加密目录/文件夹中工作。Dovecot 只会抱怨权限问题,无法工作。一个答案是创建一个具有未加密主目录的第二个用户帐户。我们还没有在单独的主分区上测试过这个解决方案,但结果很可能是一样的。
正式地说,使用另一个用户帐户的上述解决方法是唯一的解决方案。
您也可以修改 Dovecot 本身的源代码,以便根本不挂载主目录,如线程中所述 dovecot 挂载用户主目录。然而,问题可能根本不出在 Dovecot 上,正如这个答案:
问题是 pam_ecryptfs 捕获并使用您的登录密码进行解密
~/.ecryptfs/wrapped-passphrase
,并执行您的主目录挂载。不幸的是,您描述的非交互式 dovecot pam 会话实际上从未获取您的登录密码,因此它无法执行挂载。抱歉。
使用另一个未加密的用户帐户的解决方法似乎是最有希望的方向。