On 11/20/17 6:33 AM, Aki Tuomi wrote:


On 20.11.2017 16:20, Jeff Kletsky wrote:
On 11/20/17 6:15 AM, Aki Tuomi wrote:
On 20.11.2017 16:12, Jeff Kletsky wrote:
I'm in the process of moving from LDA to LMTP (Postfix upstream) prior
to a transition off `nix accounts to virtual accounts and am stumped
by LMTP reporting

      dovecot: lmtp(10019, j...@example.com): Error: Relative home
directory paths not supported: 0
[...]
mail_location = maildir:~/Maildir:LAYOUT=fs
# mail_location = maildir:%h/Maildir:LAYOUT=fs



Thanks!

Jeff
That seems like lmtp is not doing variable expansion for user settings.
What version of dovecot are you running?

Aki

$ sudo jexec mail dovecot --version
2.2.32 (dfbe293d4)

Jeff
I tried to repeat this issue locally, and was not able to. Can you
provide full output of

doveconf -n

and

doveadm user j...@example.com

with both %h and ~/

Aki

Found that I had two sets of passdb and userdb entries due to one from local.conf and and another from conf.d/10-auth.conf including auth-system.conf.ext -- unfortunately that wasn't the source of the problems.

Turning on auth_debug=yes in local.conf and enabling LOG_DEBUG level output shows that, in contrast to the "working" configuration, it looks like my passwd-file configuration is returning "home=0" -- consistent with

"Error: Relative home directory paths not supported: 0"



    auth: Debug: passwd-file(jeff,n.n.n.n,<longToken>): lookup: user=jeff file=/usr/local/etc/dovecot/users     auth: Debug: client passdb out: OK    1    user=jeff User    &:/home/jeff:/usr/sbin/nologin

    dovecot: auth: Debug: passwd-file(jeff,n.n.n.n,<longToken>): lookup: user=jeff file=/usr/local/etc/dovecot/users     dovecot: auth: Debug: master userdb out: USER    1234567890 jeff    uid=xxxxx    gid=xxxxx    home=0 auth_token=verylongauthtoken


These were the clues needed -- While https://wiki2.dovecot.org/AuthDatabase/PasswdFile talked about using a FreeBSD master.passwd file as a passdb, it neglected to state that the Linux format and FreeBSD format are different.

Linux   -- user:password:uid:gid:(gecos):home:(shell):extra_fields
FreeBSD -- name:password:uid:gid:class:change:expire:gecos:home_dir:shell
------------------------------------------^

Login will succeed, but the home variable will be populated with the FreeBSD "change" which is often 0

Wiki page updated with details on how to use FreeBSD /etc/master.passwd extracts with passwd-file

Jeff

Reply via email to