dovecot userdb passwd-file default_fields uid 未擴充 %variable

dovecot userdb passwd-file default_fields uid 未擴充 %variable

我正在嘗試建立一個非常簡單的共享郵件伺服器,其中每個“網域”都是一個系統用戶,即“example.com”是一個真實用戶,/home/example.com/,uid為5001,gid為“ example.com' 為5001。

每個網域\使用者在其家中都有自己的郵件目錄,以及一個包含與該網域關聯的虛擬郵件使用者的普通密碼檔案。

Dovecot 版本和配置資訊:

# dovecot -n
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.8
auth_mechanisms = plain login
auth_verbose = yes
disable_plaintext_auth = no
mail_location = mbox:~/mail:INBOX=/var/mail/%u
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = username_format=%n /home/%d/mail_users
  driver = passwd-file
}
protocols = " imap lmtp pop3"
ssl = no
userdb {
  args = username_format=%n /home/%d/mail_users
  default_fields = uid=%d gid=%d home=/home/%d/mail/%n mail=maildir:/home/%d/mail/%n
  driver = passwd-file
}

每次我嘗試連接到 pop3\imap 連接埠時,我都會在伺服器中收到以下錯誤

dovecot: auth: Fatal: passwd-file userdb: Invalid uid: %d
dovecot: master: Error: service(auth): command startup failed, throttling for 2 secs
dovecot: imap-login: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=<>, rip=192.168.30.10, lip=192.168.20.201, session=<2rgGLBkQ/wDAqB4K>

客戶看到:

$ telnet 192.168.20.201 imap
Trying 192.168.20.201...
Connected to 192.168.20.201.
Escape character is '^]'.
* BYE Disconnected: Auth process broken
Connection closed by foreign host.

檢查維基(http://wiki2.dovecot.org/UserDatabase#Userdb_settings)明確指出 default_fields 值支援 %variables,因此我不確定是否缺少此功能所需的其他配置。

由於它發生在客戶端可以發出 USER\LOGIN 命令之前,我了解到沒有可以從中提取 %d 網域部分的用戶名,因此失敗。我不明白的是為什麼在客戶端發出身份驗證嘗試之前會進行 Dovecot 身份驗證嘗試。

如果我將配置更改為固定的 uid\gid

default_fields = uid=example.com gid=example.com home=/home/%d/mail/%n mail=maildir:/home/%d/mail/%n

允許連線並可以發出正確的身份驗證命令。但是,訪問不屬於 example.com 網域的任何使用者的郵箱當然會失敗。

相關內容