On Wed, Jun 23, 1999 at 07:46:59PM +0100, Kiril Mitev wrote:
Since we don't know what your code looks like, this is just a wild guess:
In your own auth program, do you have code to do a chdir to the directory
containing the Maildir? qmail-pop3d starts by checking for the presence of
a Maildir, and then tries to chdir into it, using a relative path. If these
2 calls fail, it dies complains that the user has no Maildir.
> Dear All
>
> here is the problem:
> i have setup a virtual host delivery system as per
> Paul Greg's instructions :-)
>
>
> he uses a checkpoppasswd program to read a 'custom' password
> file and do the authentication. i need to do something very similar
> but use my own authentication backend.
>
> it all *almost* works, but only "almost". i compared the preliminary setup
> done by checkpoppasswd and my checkpop.pl and they both seem to
> be supplying an identical environment to qmail-pop3d.
>
> however, when i use my password checker, qmail-pop3d complains
> that the user 'does not have a /Maildir/', the famous
> -ERR this user has no $HOME/Maildir
> error....
>
> to double-check, this is what i have done. i changed checkpassword
> to execvp() a small script that dumps the environment around it
> back to the network connection. i changed my program to do
> the same, and compared the two. looks identical!
> the environment dumper then exec's qmail-pop3d
>
> please help/suggest/whatever if you can...
>
>
> here is the TELNET session of a connection made using Paul Greg's setup:
>
> # telnet 0 pop3
> Trying 0.0.0.0...
> Connected to 0.
> Escape character is '^]'.
> +OK <[EMAIL PROTECTED]>
> user tester
> +OK
> pass testpw
> checkpoppass.... about to exec! <<this is output by checkpoppasswd>>
> << from here onwards
>output is by showenv >>
> SHOWENV: BLOCKSIZE=[K]
> SHOWENV: HOME=[/var/qmail/popboxes/ideaglobal-com/tester]
> SHOWENV: MAIL=[/var/mail/root]
> SHOWENV: PATH=[/root/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin]
> SHOWENV: SHELL=[/sbin/nologin]
> SHOWENV: TERM=[su]
> SHOWENV: USER=[popuser]
> SHOWENV:
>inetd_dummy=[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
> SHOWENV:
> SHOWENV: uids are 888 and 888
> SHOWENV: ARGV = /var/qmail/bin/qmail-pop3d Maildir
> SHOWENV: -----------------------------
>
> << showenv is done >>
> +OK
> quit
> +OK
> << those 3 lines are
>output by qmail-pop3d >>
> << at this point i
>could use LIST and RETR >>
> << and it works >>
> Connection closed by foreign host.
> << message courtesy of
>/usr/bin/telnet >>
>
> **** And here is the session of a connection made to my passwd program
>
> # telnet 0 pop3
> Trying 0.0.0.0...
> Connected to 0.
> Escape character is '^]'.
> +OK <[EMAIL PROTECTED]>
> user tester
> +OK
> pass tester
> << showenv starts >>
> SHOWENV: HOME=[/var/qmail/popboxes/ideaglobal-com/tester]
> SHOWENV: SHELL=[/sbin/nologin]
> SHOWENV: USER=[popuser]
> SHOWENV:
> SHOWENV: uids are 888 and 888
> SHOWENV: ARGV = /var/qmail/bin/qmail-pop3d Maildir
> SHOWENV: -----------------------------
> << showenv ends >>
> -ERR this user has no $HOME/Maildir
> << -ERR comes from qmail-pop3d >>
> Connection closed by foreign host.
> << message courtesy of
>/usr/bin/telnet >>
>
>
> = = = = = =
>
> as you can see, the environment variables HOME/USER/SHELL are identical
> in both cases, the real and effective uids are set to 888 in both cases
> and the ARGV line which is used to exec() qmail-pop3d is identical
>
>
> what the hell am i doing wrong ????
>
> Kiril
--
System Administrator
See complete headers for address, homepage and phone numbers