LMTP "Relative home directory paths not supported"

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

LMTP "Relative home directory paths not supported"

Jeff Kletsky-4
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, [hidden email]): Error: Relative home
directory paths not supported: 0

LDA does /not /have any problems with PAM or passwd-file passdb/userdb
and the ubiquitous definition of

     mail_location = maildir:~/Maildir:LAYOUT=fs

I have yet to be able to get LMTP to deliver mail, nor have I found
anything on the Dovecot wiki to describe how to represent that the
mail_location is <whatever/userdb/returned/for/home>/Maildir

I'd prefer to localize the user-to-file-space mapping localized to
Dovecot (rather than split within Postfix and Dovecot)

I'd definitely appreciate any pointers to web pages or specific
suggestions as to how to resolve this.

Excerpts of Dovecot local.conf follow, full doveconf -n output on
request. The/users /file is in the same format as FreeBSD
/etc/master.passwd with name, password, UID, gid, home_dir, and shell
meaningfully populated. The configuration below works with LDA
(end-to-end). With LMTP, it identifies <[hidden email]> as a valid
destination, but fails on delivery with the "relative home directory
paths" error message.

passdb {
   driver = passwd-file
   args = /path/to/users
}
userdb {
   driver = passwd-file
   args = username_format=%n /path/to/users
}

# See http://wiki2.dovecot.org/MailLocation/Maildir
# https://wiki.dovecot.org/VirtualUsers/Home

mail_location = maildir:~/Maildir:LAYOUT=fs
# mail_location = maildir:%h/Maildir:LAYOUT=fs



Thanks!

Jeff
Reply | Threaded
Open this post in threaded view
|

Re: LMTP "Relative home directory paths not supported"

Aki Tuomi-2


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, [hidden email]): Error: Relative home
> directory paths not supported: 0
>
> LDA does /not /have any problems with PAM or passwd-file passdb/userdb
> and the ubiquitous definition of
>
>     mail_location = maildir:~/Maildir:LAYOUT=fs
>
> I have yet to be able to get LMTP to deliver mail, nor have I found
> anything on the Dovecot wiki to describe how to represent that the
> mail_location is <whatever/userdb/returned/for/home>/Maildir
>
> I'd prefer to localize the user-to-file-space mapping localized to
> Dovecot (rather than split within Postfix and Dovecot)
>
> I'd definitely appreciate any pointers to web pages or specific
> suggestions as to how to resolve this.
>
> Excerpts of Dovecot local.conf follow, full doveconf -n output on
> request. The/users /file is in the same format as FreeBSD
> /etc/master.passwd with name, password, UID, gid, home_dir, and shell
> meaningfully populated. The configuration below works with LDA
> (end-to-end). With LMTP, it identifies <[hidden email]> as a valid
> destination, but fails on delivery with the "relative home directory
> paths" error message.
>
> passdb {
>   driver = passwd-file
>   args = /path/to/users
> }
> userdb {
>   driver = passwd-file
>   args = username_format=%n /path/to/users
> }
>
> # See http://wiki2.dovecot.org/MailLocation/Maildir
> # https://wiki.dovecot.org/VirtualUsers/Home
>
> 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
Reply | Threaded
Open this post in threaded view
|

Re: LMTP "Relative home directory paths not supported"

Jeff Kletsky-4
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, [hidden email]): Error: Relative home
>> directory paths not supported: 0
>>
>> LDA does /not /have any problems with PAM or passwd-file passdb/userdb
>> and the ubiquitous definition of
>>
>>      mail_location = maildir:~/Maildir:LAYOUT=fs
>>
>> I have yet to be able to get LMTP to deliver mail, nor have I found
>> anything on the Dovecot wiki to describe how to represent that the
>> mail_location is <whatever/userdb/returned/for/home>/Maildir
>>
>> I'd prefer to localize the user-to-file-space mapping localized to
>> Dovecot (rather than split within Postfix and Dovecot)
>>
>> I'd definitely appreciate any pointers to web pages or specific
>> suggestions as to how to resolve this.
>>
>> Excerpts of Dovecot local.conf follow, full doveconf -n output on
>> request. The/users /file is in the same format as FreeBSD
>> /etc/master.passwd with name, password, UID, gid, home_dir, and shell
>> meaningfully populated. The configuration below works with LDA
>> (end-to-end). With LMTP, it identifies <[hidden email]> as a valid
>> destination, but fails on delivery with the "relative home directory
>> paths" error message.
>>
>> passdb {
>>    driver = passwd-file
>>    args = /path/to/users
>> }
>> userdb {
>>    driver = passwd-file
>>    args = username_format=%n /path/to/users
>> }
>>
>> # See http://wiki2.dovecot.org/MailLocation/Maildir
>> # https://wiki.dovecot.org/VirtualUsers/Home
>>
>> 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
Reply | Threaded
Open this post in threaded view
|

Re: LMTP "Relative home directory paths not supported"

Aki Tuomi-2


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, [hidden email]): Error: Relative home
>>> directory paths not supported: 0
>>>
>>> LDA does /not /have any problems with PAM or passwd-file passdb/userdb
>>> and the ubiquitous definition of
>>>
>>>      mail_location = maildir:~/Maildir:LAYOUT=fs
>>>
>>> I have yet to be able to get LMTP to deliver mail, nor have I found
>>> anything on the Dovecot wiki to describe how to represent that the
>>> mail_location is <whatever/userdb/returned/for/home>/Maildir
>>>
>>> I'd prefer to localize the user-to-file-space mapping localized to
>>> Dovecot (rather than split within Postfix and Dovecot)
>>>
>>> I'd definitely appreciate any pointers to web pages or specific
>>> suggestions as to how to resolve this.
>>>
>>> Excerpts of Dovecot local.conf follow, full doveconf -n output on
>>> request. The/users /file is in the same format as FreeBSD
>>> /etc/master.passwd with name, password, UID, gid, home_dir, and shell
>>> meaningfully populated. The configuration below works with LDA
>>> (end-to-end). With LMTP, it identifies <[hidden email]> as a valid
>>> destination, but fails on delivery with the "relative home directory
>>> paths" error message.
>>>
>>> passdb {
>>>    driver = passwd-file
>>>    args = /path/to/users
>>> }
>>> userdb {
>>>    driver = passwd-file
>>>    args = username_format=%n /path/to/users
>>> }
>>>
>>> # See http://wiki2.dovecot.org/MailLocation/Maildir
>>> # https://wiki.dovecot.org/VirtualUsers/Home
>>>
>>> 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 [hidden email]

with both %h and ~/

Aki
Reply | Threaded
Open this post in threaded view
|

Re: LMTP "Relative home directory paths not supported"

Jeff Kletsky-4
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, [hidden email]): 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 [hidden email]
>
> 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