Dovecot

如何使用 passdb 配置 doveadm -A?

  • May 14, 2019

我正在使用帶有 passdb 的 Dovecot 作為使用者數據庫:

passdb {
   args = scheme=sha512-crypt /etc/mail/passwd
   driver = passwd-file
}

userdb {
   args = uid=vmail gid=vmail home=/var/vmail/%d/%n
   driver = static
}

我不能將-A標誌與任何 doveadm 命令一起使用(而使用-u user有效)。例如:

$ doveadm expunge -A mailbox Trash all
Error: User listing returned failure
doveadm: Error: Failed to iterate through some users

鴿舍日誌顯示:

... dovecot[1225]: auth: Error: Trying to iterate users, but userdbs don't support it

有沒有辦法配置這種支持,或者這只是一個限制?

static驅動程序確實不支持迭代,但您可以毫不passwd-file費力地切換到該驅動程序,並且該驅動程序確實支持迭代。

您可以對 passdb 和 userdb 使用相同的文件:

passdb {
   args = scheme=sha512-crypt /etc/mail/passwd
   driver = passwd-file
}

userdb {
   default_fields = uid=vmail gid=vmail home=/var/vmail/%d/%n
   args = /etc/mail/passwd
   driver = passwd-file
}

使用此配置,您必須確保 /etc/mail/passwd 有八個以冒號分隔的欄位,請參閱https://wiki2.dovecot.org/UserDatabase::::::(只需在目前文件的每一行附加六個冒號。)

重新載入,您的doveadm -A命令成功。

引用自:https://serverfault.com/questions/939418