----- Original Message ----- 
From: "Tom Collins" <[EMAIL PROTECTED]>


> On Sep 25, 2004, at 9:00 PM, Jeremy Kister wrote:
> > I've got a hunch that there is an incompatibility between the newer
> > vpopmail and courier's authvchkpw
>
> To test your theory, try vpopmail 5.4.0.  I know that Michael Bowe
> worked on the vpopmail code in courier-imap, so I don't see any reason
> for the latest builds to not work.

Yes earlier this year I rewrote the vchkpw code that is included in
courier-imap. The idea here was to fix some broken functionality and to also
close some security issues. My changes were included in the v3.0.0 release
of courier-imap.

I use vchkpw 5.4.x and courier-imap-3.0.x on my production server and
haven't seen the problem you describe. To make sure something hadn't slipped
by, I just updated my server to the latest (5.4.7+3.0.8) and ran it in a few
different combinations eg with/without roaming users, with/without
authdaemon.. Still couldn't duplicate your problem.

I know where in the code your problem is occurring. vchkpw authentication is
handed in the courier-imap source primarily by authlib/authvchkpw.c. In this
file, once a user has been successfully auth'ed, courier-imap executes this
function :

    authsuccess(a->homedir, 0, a->sysuserid, &a->sysgroupid, a->address,
a->fullname);

authsuccess() switches to the supplied user/group and then does this :

        if (chdir(homedir))
        {
                fprintf(stderr, "chdir \"%s\": %s\n", homedir,
                        strerror(errno));
                authexit(1);
        }

So, for some reason your "homedir" field just contains username rather than
the full path to the user's dir.

To try and get to the bottom of this, I would suggest that you edit your
imapd file (/usr/local/courier-imap/etc/imapd or similar), and set
DEBUG_LOGIN=2. Then restart your courier-imap daemon. Then look in your
/var/log/maillog. This is an example of an entry from my logs :

    Sep 26 22:25:30 reef imapd: authvchkpw:
[EMAIL PROTECTED],
    sysuserid=89, sysgroupid=89,
    homedir=/home/vpopmail/domains/1/pipeline.com.au/X/mbowe,
    [EMAIL PROTECTED], fullname=Michael Bowe,
    maildir=<null>, quota=<null>, options=<null>

Note how the homedir contains the full path to the user dir.
And the corresponding vuserinfo shows :

   [EMAIL PROTECTED] etc]# vuserinfo [EMAIL PROTECTED]
   name:   mbowe
   passwd: XXXX
   clear passwd: XXXX
   uid:    0
   gid:    0
   flags:  0
   gecos: Michael Bowe
   limits: No user limits set.
   dir:       /home/vpopmail/domains/1/pipeline.com.au/X/mbowe
   quota:     524288000S
    usage:     14%
    last auth: Sun Sep 26 22:25:30 2004
    last auth ip: imap

Again, you can see how the full path to the user dir is displayed.

Jeremy, how does this compare with your system?

Michael.





Reply via email to