Eu tenho um servidor de e-mail configurado para usar o dovecot com usuários virtuais:
passdb {
driver = passwd-file
args = username_format=%n /etc/vmail/%d/users
}
userdb {
driver = static
args = uid=109 gid=111 home=/home/vmail/%d/%n
}
Agora preciso definir cotas de armazenamento para alguns usuários. Aparentemente, isso não é possível com o static
driver, então imaginei que a maneira mais simples de habilitá-lo seria mudar para passwd-file
. No entanto, eu luto para realmente fazê-lo funcionar.
Usando o mesmo passdb
acima e
userdb {
driver = passwd-file
args = username_format=%n /etc/vmail/%d/users
default_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
}
93.184.216.34 recebo os seguintes erros:
dovecot: imap: Erro: usuário autenticado não encontrado no userdb, ID de pesquisa de autenticação = 345505793 (client-pid = 30121 client-id = 1)
dovecot: auth: Erro: passwd-file([email protected],93.184.216.34,): user not found from userdb
Eu tentei muitas variações e li muitas páginas do wiki do dovecot, incluindo AuthDatabase/PasswdFile , mas não consigo interpretar a documentação corretamente.
Como transponho minha static
configuração em um passwd-file
arquivo com modificações mínimas?
/etc/vmail/%d/users
os arquivos são do formato padrão
user:{SHA512}…
E aqui está a saída dovecot userdb
para essas configurações:
userdb {
args = username_format=%n /etc/vmail/%d/users
auth_verbose = default
default_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
driver = passwd-file
name =
override_fields =
result_failure = continue
result_internalfail = continue
result_success = return-ok
skip = never
}
Apenas para complementar sua resposta, você só precisa de dois dois -pontos após o campo de senha para que o
default_values
inuserdb
seja pego.A verificação com
doveadm
também fornece a pasta inicial:Eu assumi erroneamente que outros campos além de
user
epassword
eram opcionais, poisdefault_fields
cuidariam deles.Na verdade, a documentação afirma (ênfase minha)
Então, esses campos são realmente obrigatórios. Mas como eles já estão definidos por
default_fields
, eles podem estar vazios:Achei por acaso porque a única conta de trabalho era aquela em que eu estava testando a cota (usando o
userdb_quota_rule
campo extra por usuário)…O
doveadm user [email protected]
também foi muito útil para depurar esse problema.