> Sumith Ail wrote:
> 
> Hello
> 
> If I add more than 100 users in a domain the users are created in
> /home/domains/domain.com/0 folder, but the permissions are set to
> vpopmail and vchkpw and not to the unix uid which I had set for the
> domain.
> 
> So, these users cannot authenticate from pop3 unless I change there
> permissions back to the unix user ID.
> 
> Any Idea whats going wrong. Do I have to continue by manually change
> the permissions for the subfolders.
> 
> We are using Qmail + Vpopmail 4.9.8-1 (CDB) + Qmailadmin 0.39
> 
> Thanks
> Sumith

Sumith, 

You discovered a bug in the r_mkdir() function in vpopmail.c
It is fixed in the "just released as of this email" version 4.9.9
Or you can patch your vpopmail.

in vpopmail.c
old code:
int r_mkdir(char *path, int uid, int gid )
{
 static char tmpbuf[MAX_DIR_NAME];
 int i;

    for(i=0;path[i]!=0;++i){
        if ( path[i] == '/' ) {
            tmpbuf[i] = 0;
            mkdir(tmpbuf,VPOPMAIL_DIR_MODE);
            chown(tmpbuf, VPOPMAILUID, VPOPMAILGID);
        }
        tmpbuf[i] = path[i];
    }
    mkdir(path,VPOPMAIL_DIR_MODE);
    chown(path, VPOPMAILUID, VPOPMAILGID);
    return(0);
}

new code:
int r_mkdir(char *path, uid_t uid, gid_t gid )
{
 static char tmpbuf[MAX_DIR_NAME];
 int i;

    for(i=0;path[i]!=0;++i){
        if ( path[i] == '/' ) {
            tmpbuf[i] = 0;
            mkdir(tmpbuf,VPOPMAIL_DIR_MODE);
            chown(tmpbuf, uid, gid);
        }
        tmpbuf[i] = path[i];
    }
    mkdir(path,VPOPMAIL_DIR_MODE);
    chown(path, uid, gid);
    return(0);
}

Notice the difference bewteen the 2 chown calls.

You will have to recompile vpopmail, then install
it. Then in qmailadmin, make clean; make; make install-strip

Plus you'll need to chown -R uid dir and chgrp -R gid dir
to fix your current directories.

Ken Jones

Reply via email to