[exim] unable to set gid=518 or uid=518 (euid=8)...

Top Page
Delete this message
Reply to this message
Author: Ian FREISLICH
Date:  
To: exim-users
Subject: [exim] unable to set gid=518 or uid=518 (euid=8)...
Hi

I'm struggling to make exim deliver mail to local domains, that for
historical reasons use vmailmgr to manage them. Before everyone
says that exim should be setuid, it is:

lrwxrwxrwx    1 root     root           11 Dec 23 14:10 /usr/bin/exim -> exim-4.43-3
-rwsr-xr-x    1 root     root      1576220 Dec 23 11:48 /usr/bin/exim-4.43-2
-rwsr-xr-x    1 root     root      1576220 Dec 23 14:10 /usr/bin/exim-4.43-3


These are the routers and transports that I've setup:

sub vmail_mailbox
{
        use CDB_File;
        ($file) = @_;
        tie(%h, "CDB_File", $file) || die "can't open cdb file";
        $a = chr(2);
        $line = $h{Exim::expand_string('$local_part')};
        $line =~ s/^.*?://;
        $line =~ s/:/./;
        $line =~ s/\0/:/g;
        $line =~ s/$a/:/g;
        @bits = split(/:/, $line);
        if (length($bits[3]) > 0) {
                return($bits[3]);
        }
        return(undef);
}



vmail_user:
driver = accept
domains = +vmail_domains
user = ${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}
condition = ${perl {vmail_mailbox}{/usr/home/${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}/passwd.cdb}}
transport = vmail_delivery

vmail_delivery:
driver = appendfile
directory = /usr/home/${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}/${perl {vmail_mailbox}{/usr/home/${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}/passwd.cdb}}
directory_mode = 0775
create_directory
maildir_format

This correctly verifies that the domain is one that we accept and
that the local_part is in the domain's configuration. It just fails
accepting the mail, either from the command line.

Here's my queue (the message recieved by '/usr/bin/exim -C
/etc/exim/configure.new -oX 26 -bd'):

exim -bp
 0m   193 1CpQxN-0006zS-SR <if@???> *** frozen ***
          if@???


However, if I force delivery:
exim -C /etc/exim/configure.new -v -M 1CpQxN-0006zS-SR
delivering 1CpQxN-0006zS-SR
LOG: MAIN
Unfrozen by forced delivery
LOG: MAIN
=> if <if@???> R=vmail_user T=vmail_delivery
LOG: MAIN
Completed

Does anyone have any ideas?

Ian

--
Ian Freislich