Назад | Перейти на главную страницу

Как мне настроить doveadm -A с passdb?

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