嗯,这个案例看起来很简单,但我找不到令人满意的答案。
我有一个 Postfix/Dovecot 安装,后者配置为使用虚拟电子邮件,这对于在服务器上没有帐户的虚拟用户来说非常有用。
为了更清楚起见,我们举一个例子:virtualuser
在虚拟用户数据库 (/etc/dovecot/users) 中注册,并且能够通过 IMAP 和 SMTP 接收和发送邮件,没有任何问题。另一方面,localuser
是服务器上的常规系统用户。现在,如果我在 Dovecot 的虚拟用户数据库中添加一个名为的新用户localuser
,并尝试在 IMAP 中以这个具有本地别名的虚拟用户身份进行连接,我的日志中会出现以下错误:
imap: Error: user localuser: Mail access for users with UID 1000 not permitted ([etc]).
很明显,由于 Postfixlocaluser
在系统用户中找到一个名为的用户,它会尝试进行身份验证那用户,甚至不看虚拟用户。
所以问题是:如何让 Postfix 查找虚拟用户前本地用户?
这是否可能,或者我是否陷入混乱的配置混合本地和虚拟用户?
答案1
正如我所料,解决方案是非常简单:/etc/dovecot/conf.d/10-auth.conf
包括两个文件:auth-system.conf.ext
分别用于系统用户和auth-mydomain.conf.ext
虚拟用户。命令包含这些文件很重要,通过交换两行可以轻松完成虚拟用户后的系统用户查找:
[...]
!include auth-mydomain.conf.ext
!include auth-system.conf.ext