Dovecot allows creating a master user that will be able to log-in as any other user which is particularly useful when administering a large number of accounts and you have to check that emails are properly sent and received. This short tutorial will explain how a master user can be added to dovecot and how to test logging-in. The Linux distribution used for this tutorial is Debian but the information may apply to other distributions.
To create a master file, assuming that the dovecot configuration files are placed in /etc/dovecot/, issue the command:
htpasswd -b -c -s /etc/dovecot/master-users MASTER_USER MASTER_PASSWORD
where:
MASTER_USER is the master user to be used to log-in as other users,MASTER_PASSWORD is the master user's password
To configure dovecot and enable the master user, edit /etc/dovecot/conf.d/10-auth.conf and set the master separator field:
auth_master_user_separator = *
this symbol (*) will be used to separate the real user from the master user when logging-in. In the same file, make sure that the master configuration file is not commented (remove the hash sign # before the exclamation mark !:
!include auth-master.conf.ext
Next, edit /etc/dovecot/conf.d/auth-master.conf.ext and amend the file such that it contains the lines:
passdb {
driver = passwd-file
master = yes
args = /etc/dovecot/master-users
pass = yes
}
passdb {
driver = shadow
}
userdb {
driver = passwd
}
The final step is to restart dovecot and then check that logging-in works.
Checking that the master user works can be performed via SSL or in plain mode. In order to log-in as a different user by using the master user, the username and password to be used will be:
| Username | Password |
|---|---|
OTHER_USER*MASTER_USER | MASTER_PASSWORD |
For example, if the user you want to log-in as is called john and your master user is called barbara and the master password is siglint, then the username you have to supply will be john*barbara and the password will be siglint.
To log-in using the plain method, issue:
telnet localhost 143
assuming that dovecot is listening on localhost.
And then enter:
tag login john*barbara siglint
where:
john is the user to impersonatebarbara is the master usernamesiglint is the master passwordUsing SSL, issue:
openssl s_client -crlf -connect localhost:993
assuming that dovecot is listening on localhost and port 993, and then issue:
tag login john*barbara siglint
where:
john is the user to impersonatebarbara is the master usernamesiglint is the master passwordFor the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.