Iteration failure on passwd-file when listing all users?

EML sa212+dovecot at cyconix.com
Sat Dec 31 16:29:17 UTC 2022


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 at 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 at example.com example.com/user1


More information about the dovecot mailing list