首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dovecot无法登录虚拟用户

Dovecot无法登录虚拟用户
EN

Server Fault用户
提问于 2019-11-16 13:51:44
回答 1查看 2.2K关注 0票数 3

Hello运行Linux <hostname> 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u1 (2019-09-20) x86_64 GNU/Linux

我对建立邮件服务器完全陌生。我已经设置了SMTP的后缀,它可以接收电子邮件。后缀版本是mail_version = 3.1.12

我还安装了Dovecot版本:2.2.27 (c0f36b0)--我的配置是这样的--将后缀配置为通过本地套接字使用DOVECOT。

我的系统被配置成在/var/mail/<owndomain.org>/<username>中存储电子邮件。对于每个域,我都有自己的passwd文件,其中dovecot应该查找用户名和密码。/var/mail/<owndomain.org>/passwd

我创建了用于访问邮件和验证用户身份的virtualuser。我的dovecot配置是:在/etc/dovecot/dovecot.conf中,我在文件末尾添加了

代码语言:javascript
复制
userdb {
  driver = passwd-file
  args = username_format=%n /var/mail/%d/passwd
  default_fields = uid=virtualmail gid=virtualmail home=/var/mail/%d/%n
}
passdb {
  driver = passwd-file
  args = username_format=%n /var/mail/%d/passwd
}

passwd文件内容采用格式:

代码语言:javascript
复制
<username_without_domain>:{plain}test

/etc/dovecot/conf.d/10-auth.conf中,我设置了:

代码语言:javascript
复制
disable_plaintext_auth = no
auth_mechanisms = plain login

/etc/dovecot/conf.d/10-mail.conf中,我设置了:

代码语言:javascript
复制
mail_home = /var/mail/home/%d/%n
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%d/%n
mail_privileged_group = virtualmail

现在的问题是:我正在使用telnet测试配置。POSTFIX接收电子邮件并存储它。没问题。当我尝试使用Telnet登录Dovecot IMAP时,我得到以下消息:

代码语言:javascript
复制
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH-LOGIN] Dovecot ready.
a login "username@owndomain.org" "test"
a NO [UNAVAILABLE] Internal error occured. Refer to server log for more information.

我启用了详细日志记录,这是日志的输出:/var/log/dovecot.log有以下消息:

代码语言:javascript
复制
Nov 16 14:20:49 auth: Error: plain(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): user not found from any userdbs
Nov 16 14:20:49 imap: Error: Authenticated user not found from userdb, auth lookup id=684589057 (client-pid=9601 client-id=1)

/var/log/dovecot-debug.log发出了这样的信息:

代码语言:javascript
复制
Nov 16 14:20:18 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Nov 16 14:20:18 auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat
Nov 16 14:20:18 auth: Debug: auth client connected (pid=9601)
Nov 16 14:20:47 auth: Debug: client in: AUTH    1       PLAIN   service=imap    session=RF4llXaXisPAqAmD        lip=192.168.2.2 rip=192.168.9.131       lport=143       rport=$
Nov 16 14:20:47 auth-worker(9603): Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Nov 16 14:20:47 auth-worker(9603): Debug: pam(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup service=dovecot
Nov 16 14:20:47 auth-worker(9603): Debug: pam(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): #1/1 style=1 msg=Password:
Nov 16 14:20:49 auth: Debug: passwd-file /var/mail/owndomain.org/passwd: Read 2 users in 0 secs
Nov 16 14:20:49 auth: Debug: passwd-file(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup: user=username file=/var/mail/owndomain.org/passwd
Nov 16 14:20:49 auth: Debug: client passdb out: OK      1       user=username@owndomain.org
Nov 16 14:20:49 auth: Debug: master in: REQUEST 684589057       9601    1       a61dd67ee43390596ddf86e6c08db6f9        session_pid=9604        request_auth_token
Nov 16 14:20:49 auth-worker(9603): Debug: passwd(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup
Nov 16 14:20:49 auth: Debug: passwd-file(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup: user=username file=/var/mail/owndomain.org/passwd
Nov 16 14:20:49 auth: Debug: master userdb out: NOTFOUND        684589057

我完全不知道是什么问题。因为似乎找到了密码,但用户却没有找到?在同一个passwd文件中查找密码和用户。我忘了做什么准备了吗?任何帮助都是非常感谢的!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-11-21 09:38:43

好的,我发现了问题。至少看起来是这样。

在passwd文件中,我使用了以下格式

代码语言:javascript
复制
username:{scheme}password

但是,我没有为其余的空值添加双冒号,所以正确的格式应该是:

代码语言:javascript
复制
username:{scheme}password:::::

问题解决了。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/992108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档