Unable to specify home directory for mail_location
Greetings Dovecot team/users,
I am trying to use Dovecot to serve Maildir files. The users' email is located in ~/Maildir (in each user's home directory). I tried specifying
mail_location = maildir:~/Maildir
but I get this error:
Aug 4 00:06:34 ch dovecot: imap(username): Error: Relative home directory paths not supported: 0
Are relative home directory paths not supported?
Here is the output of dovecot -n:
dovecot -n
2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf
OS: OpenBSD 7.7 amd64
Hostname: ch.ircnow.org
auth_debug = yes auth_debug_passwords = yes auth_verbose = yes auth_verbose_passwords = sha1 first_valid_uid = 1000 listen = 104.244.78.185, 2605:6400:c8b7::1 mail_debug = yes mail_location = maildir:~/Maildir mbox_write_locks = fcntl mmap_disable = yes namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = scheme=blf-crypt username_format=%u /etc/dovecot/passwd driver = passwd-file } ssl_cert = </etc/ssl/ch.ircnow.org.crt ssl_key = # hidden, use -P to show it userdb { args = username_format=%u /etc/dovecot/passwd default_fields = quota_rule=*:storage=1G driver = passwd-file } verbose_ssl = yes
1375 bytes received in 0.00 seconds (5.18 MB/s)
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
Even when I hard code
mail_location = maildir:/home/username/Maildir
I get the same error message:
Aug 4 01:25:20 ch dovecot: imap(username): Error: Relative home directory paths not supported: 0
This error message makes no sense to me.
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
On Sun, Aug 03, 2025 at 03:30:26PM -0700, jrmu@ircnow.org wrote:
Greetings Dovecot team/users,
I am trying to use Dovecot to serve Maildir files. The users' email is located in ~/Maildir (in each user's home directory). I tried specifying
mail_location = maildir:~/Maildir
but I get this error:
Aug 4 00:06:34 ch dovecot: imap(username): Error: Relative home directory paths not supported: 0
Are relative home directory paths not supported?
Here is the output of dovecot -n:
dovecot -n
2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf
OS: OpenBSD 7.7 amd64
Hostname: ch.ircnow.org
auth_debug = yes auth_debug_passwords = yes auth_verbose = yes auth_verbose_passwords = sha1 first_valid_uid = 1000 listen = 104.244.78.185, 2605:6400:c8b7::1 mail_debug = yes mail_location = maildir:~/Maildir mbox_write_locks = fcntl mmap_disable = yes namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = scheme=blf-crypt username_format=%u /etc/dovecot/passwd driver = passwd-file } ssl_cert = </etc/ssl/ch.ircnow.org.crt ssl_key = # hidden, use -P to show it userdb { args = username_format=%u /etc/dovecot/passwd default_fields = quota_rule=*:storage=1G driver = passwd-file } verbose_ssl = yes
1375 bytes received in 0.00 seconds (5.18 MB/s)
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
On 04/08/2025 01:30 EEST jrmu--- via dovecot <dovecot@dovecot.org> wrote:
Greetings Dovecot team/users,
I am trying to use Dovecot to serve Maildir files. The users' email is located in ~/Maildir (in each user's home directory). I tried specifying
mail_location = maildir:~/Maildir
but I get this error:
Aug 4 00:06:34 ch dovecot: imap(username): Error: Relative home directory paths not supported: 0
Are relative home directory paths not supported?
Here is the output of dovecot -n:
dovecot -n
driver = passwd-file } verbose_ssl = yes
1375 bytes received in 0.00 seconds (5.18 MB/s)
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
Either add
mail_home = /path/to/home/%u (or something like this)
or your passwd-file needs to returns home directory.
Aki
Thank you for your help, Aki!
It turns out my passwd file was in the wrong format and that was causing the errors.
I'll investigate into this a bit more.
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
On Mon, Aug 04, 2025 at 07:50:54AM +0300, Aki Tuomi wrote:
On 04/08/2025 01:30 EEST jrmu--- via dovecot <dovecot@dovecot.org> wrote:
Greetings Dovecot team/users,
I am trying to use Dovecot to serve Maildir files. The users' email is located in ~/Maildir (in each user's home directory). I tried specifying
mail_location = maildir:~/Maildir
but I get this error:
Aug 4 00:06:34 ch dovecot: imap(username): Error: Relative home directory paths not supported: 0
Are relative home directory paths not supported?
Here is the output of dovecot -n:
dovecot -n
driver = passwd-file } verbose_ssl = yes
1375 bytes received in 0.00 seconds (5.18 MB/s)
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
Either add
mail_home = /path/to/home/%u (or something like this)
or your passwd-file needs to returns home directory.
Aki
I am now trying to use bsdauth instead of passwd-file:
passdb { driver = bsdauth }
When I attempt to login via IMAP, dovecot reports this error:
Aug 4 19:19:43 jrmu dovecot: imap(77561): Error: Couldn't drop privileges: User is missing UID (see mail_uid setting)
Below is the output of dovecot -n:
dovecot -n
2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf
OS: OpenBSD 7.7 amd64 ffs
Hostname: jrmu.host.nastycode.com
auth_debug = yes auth_debug_passwords = yes auth_verbose = yes auth_verbose_passwords = sha1 first_valid_uid = 1000 listen = 104.167.242.227, 2602:fccf:1:2227:: mail_debug = yes mail_location = maildir:/home/%u/Maildir mbox_write_locks = fcntl mmap_disable = yes namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { driver = bsdauth } ssl_cert = </etc/ssl/jrmu.host.nastycode.com.crt ssl_key = # hidden, use -P to show it verbose_ssl = yes
dovecot will properly drop privileges work if I hard code mail_uid and mail_gid:
mail_uid = 1001 mail_gid = 1001
But shouldn't dovecot be allowed to drop to any user that logs in, and not get hard coded to a single uid?
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
On Mon, Aug 04, 2025 at 07:50:54AM +0300, Aki Tuomi wrote:
On 04/08/2025 01:30 EEST jrmu--- via dovecot <dovecot@dovecot.org> wrote:
Greetings Dovecot team/users,
I am trying to use Dovecot to serve Maildir files. The users' email is located in ~/Maildir (in each user's home directory). I tried specifying
mail_location = maildir:~/Maildir
but I get this error:
Aug 4 00:06:34 ch dovecot: imap(username): Error: Relative home directory paths not supported: 0
Are relative home directory paths not supported?
Here is the output of dovecot -n:
dovecot -n
driver = passwd-file } verbose_ssl = yes
1375 bytes received in 0.00 seconds (5.18 MB/s)
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
Either add
mail_home = /path/to/home/%u (or something like this)
or your passwd-file needs to returns home directory.
Aki
I was able to solve this by specifying userdb use the passwd-file in addition to passdb using bsdauth:
userdb { args = username_format=%u /etc/passwd default_fields = quota_rule=*:storage=1G driver = passwd-file }
This is combined with:
passdb { driver = bsdauth }
This may be an ugly solution but it does seem to work and only requires me maintain a single passwd file.
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
On Mon, Aug 04, 2025 at 07:32:55PM -0700, jrmu@ircnow.org wrote:
I am now trying to use bsdauth instead of passwd-file:
passdb { driver = bsdauth }
When I attempt to login via IMAP, dovecot reports this error:
Aug 4 19:19:43 jrmu dovecot: imap(77561): Error: Couldn't drop privileges: User is missing UID (see mail_uid setting)
Below is the output of dovecot -n:
dovecot -n
2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf
OS: OpenBSD 7.7 amd64 ffs
Hostname: jrmu.host.nastycode.com
auth_debug = yes auth_debug_passwords = yes auth_verbose = yes auth_verbose_passwords = sha1 first_valid_uid = 1000 listen = 104.167.242.227, 2602:fccf:1:2227:: mail_debug = yes mail_location = maildir:/home/%u/Maildir mbox_write_locks = fcntl mmap_disable = yes namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { driver = bsdauth } ssl_cert = </etc/ssl/jrmu.host.nastycode.com.crt ssl_key = # hidden, use -P to show it verbose_ssl = yes
dovecot will properly drop privileges work if I hard code mail_uid and mail_gid:
mail_uid = 1001 mail_gid = 1001
But shouldn't dovecot be allowed to drop to any user that logs in, and not get hard coded to a single uid?
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
On Mon, Aug 04, 2025 at 07:50:54AM +0300, Aki Tuomi wrote:
On 04/08/2025 01:30 EEST jrmu--- via dovecot <dovecot@dovecot.org> wrote:
Greetings Dovecot team/users,
I am trying to use Dovecot to serve Maildir files. The users' email is located in ~/Maildir (in each user's home directory). I tried specifying
mail_location = maildir:~/Maildir
but I get this error:
Aug 4 00:06:34 ch dovecot: imap(username): Error: Relative home directory paths not supported: 0
Are relative home directory paths not supported?
Here is the output of dovecot -n:
dovecot -n
driver = passwd-file } verbose_ssl = yes
1375 bytes received in 0.00 seconds (5.18 MB/s)
-- Aaron Lin jrmu@ircnow.org IRCNow (https://ircnow.org)
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
Either add
mail_home = /path/to/home/%u (or something like this)
or your passwd-file needs to returns home directory.
Aki
participants (3)
-
Aki Tuomi
-
jrmu
-
jrmu@ircnow.org