Iteration failure on passwd-file when listing all users?
Dovecot 2.3.16, Ubuntu 22.04.
I'm trying to get a list of all dovecot users, on a simple test setup on my local network (which "works", in that I can get IMAP mails from dovecot):
passdb { driver = passwd-file args = /var/mail/vhosts/%d/shadow } userdb { driver = passwd-file args = /var/mail/vhosts/%d/passwd }
The command 'doveadm user -u foo@example.com' correctly shows that user. However, any attempt to wildcard the user fails:
# doveadm user -u *@example.com Error: auth-master: userdb list: User listing returned failure Fatal: user listing failed
The log file shows
Error: conn unix:auth-worker (pid=13471,uid=129): auth-worker<1>: passwd-file(*@example.com): passwd-file: User iteration isn't currently supported with %variable paths
Any ideas? And, if I can get this to work, is this method any better than just reading /var/mail/vhosts/example.com/passwd and extracting the first field to get the user name? Or just finding all the maildir directories in /var/mail/vhosts/example.com? Thanks.
If you're interested, I'm doing this so that I can automate postfix setup (by mapping new addresses to known dovecot users in the postfix virtual mailbox file). The vmailbox file might look like:
# 'user1' is a known dovecot user foo@example.com example.com/user1
As the log files shows:
Error: conn unix:auth-worker (pid=13471,uid=129): auth-worker<1>: passwd-file(*@example.com): passwd-file: User iteration isn't currently supported with %variable paths
This does not change by providing a domain, it still has a %variable, so it won't work.
Aki
On 31/12/2022 18:50, Aki Tuomi wrote:
But I think it's meant to work - if you look at https://www.mail-archive.com/dovecot@dovecot.org/msg63918.html from 2015, Timo says:
Use userdb passwd-file to get iteration working. passdb isn't used for iteration. userdb static can't be used to iterate.
If I understand this correctly, I can use wildcards if userdb has a passwd-file driver. My setup is:
participants (3)
-
Aki Tuomi
-
EML
-
Marc