Я использую 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
flag с любыми командами 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
команда выполнена успешно.