iterate users with passwd-file passdb?

Eric Abrahamsen eric at ericabrahamsen.net
Tue Oct 13 21:54:24 UTC 2015


Timo Sirainen <tss at iki.fi> writes:

> On 14 Oct 2015, at 00:01, Eric Abrahamsen <eric at ericabrahamsen.net> wrote:
>> 
>> Joseph Tam <jtam.home at gmail.com> writes:
>> 
>>> Eric Abrahamsen writes:
>>> 
>>>> Simply: Is it possible to iterate over users if I'm using the
>>>> passwd-file passdb driver? Do I need a SQL-based driver if I want to
>>>> iterate?
>>> 
>>> What do you mean by "iterate"?  If you mean whether you can look up a
>>> password entry in a multi-entry file, then yes, definitely.  If you
>>> mean to sequentially go through it and do a first/last/best match,
>>> probably not.
>> 
>> Basically I just mean the -A argument to the doveadm commands. For
>> example, iterate through all the users and run sa-learn on each user's
>> learn/spam folder. If it's got to be SQL, it won't kill me...
>
> Use userdb passwd-file to get iteration working. passdb isn't used for iteration. userdb static can't be used to iterate.

That did it, thank you! I had been staring at this:

http://wiki2.dovecot.org/AuthDatabase/PasswdFile#line-38

But not getting it exactly right. For posterity, I edited my conf to
look like this:

passdb {
    driver = passwd-file
    args = username_format=%u scheme=ssha512 /etc/dovecot/passwd.db
    deny = no
    master = no
    pass = no
    skip = never
    result_failure = continue
    result_internalfail = continue
    result_success = return-ok
}

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

Then edited /etc/dovecot/passwd.db to add six colons at the end of each
user line -- empty fields since presently everything I need is specified
in default_fields.

Thanks again,
Eric




More information about the dovecot mailing list