Hi, I have one real domain (abusar.org) and the others are
virtual. So I configured dovecot.conf as the following:
# for abusar.org, real domain mail_location = mbox:~/.mail/:INBOX=/var/mail/%n
# for the remaining virtual domains userdb static { args = uid=17 gid=17 home=/var/spool/virtual/%d/.home/%n mail=mbox:/var/spool/virtual/%d/home/%n:INBOX=/var/spool/virtual/%d/%n }
passdb passwd-file {
args = username_format=%n /etc/virtual/%d/passwd
}
***
Everything works perfectly except for the fact that when virtual users authenticate, dovecot uses the configuration for
real users first and then authenticate succesfully with the virtual configuration, generating those annoying log error messages:
Oct 3 03:11:40 teleporto dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown Oct 3 03:11:40 teleporto dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=belforts@ragio.com.br rhost=201.6.150.188 Oct 3 03:11:40 teleporto dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown Oct 3 03:11:40 teleporto dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=belforts@telecomex.com.br rhost=201.6.150.188 Oct 3 03:11:40 teleporto dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown Oct 3 03:11:40 teleporto dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=info@mostrasocioambiental.com.br rhost=201.6.150.188 Oct 3 03:12:00 teleporto dovecot-auth: pam_unix(dovecot:auth): check pass; user unknown Oct 3 03:12:00 teleporto dovecot-auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=comprovante@ragio.com.br rhost=200.204.124.212
This messages happen because dovecot is trying to check virtual
users in the system password file (which just contains real users and not virtual users).
So is there a way to force it to check virtual users just on
the /etc/virtual/%d/passwd? I mean, if the domain is the real one, abusar.org, or it doesn't have a domain, it will check in the system passwords, but if it's some other domain except abusar.org, it should skip checking system passwords and check directly in the /etc/virtual/%d/passwd.
I just don't know how to do that.
Any hints? Thank you!
-- Linux 2.6.27-rc8: Rotary Wombat http://u-br.net