我正在使用 Dovecot 和 passdb 作为用户数据库:
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 日志显示:
... dovecot[1225]: auth: Error: Trying to iterate users, but userdbs don't support it
有没有办法配置这种支持,或者这只是一个限制?
答案1
该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
命令就会成功。