[Exim] Error: "unable to set gid=1002 or uid=1002 (euid=8)[.…

Top Page
Delete this message
Reply to this message
Author: Derek Simkowiak
Date:  
To: exim-users
Subject: [Exim] Error: "unable to set gid=1002 or uid=1002 (euid=8)[...]"
    I'm getting a strange error about not being able to set the
uid/gid.

    I have a (very) strange configuration where username on the Unix
box actually have the domains in them.  I can't see any problem with this
in Exim -- it actually finds the uid and gid correctly -- but I think it
is worth mentioning, just in case.  For example:
-------------------------------------------------------
login as: test@???
Sent username "test@???"
test@???@intranet.my_domain.net's password:
[test@??? at intranet ]$ ls -lad Maildir
drwx------    9 test@??? test@???     4096 Jan 14 21:34 Maildir/
[test@??? at intranet ]$ ls -ladn Maildir
drwx------    9 1002     1002         4096 Jan 14 21:34 Maildir/
-------------------------------------------------------


    I am using procmail as my LDA, and it DOES work with the following
configuration:


procmail_pipe:
    driver = pipe
    command = /usr/bin/procmail -d "$local_part@$domain"
    return_path_add
    delivery_date_add
    envelope_to_add
    home_directory = /home/$local_part@$domain/


    The -d option to procmail causes it to "setuid to the intended
recipients and delivers the mail as if it were invoked by the recipient
with no arguments...".


    That is fine, and is currently working for me.  But I need to
invoke a different pipe program now, so I need to understand this error.
If I change the above transport to read like this:


procmail_pipe:
    driver = pipe
    command = /usr/bin/procmail
    return_path_add
    delivery_date_add
    envelope_to_add
    home_directory = /home/$local_part@$domain/
    user = $local_part@$domain
    group = $local_part@$domain


    Then the mail fails to deliver and I get a panic log entry like
this:


2003-01-13 21:25:54 18YJKg-0002IQ-00 unable to set gid=1002 or uid=1002
(euid=8): local delivery to test <test@???> transport=procmail_pipe
2003-01-13 21:25:54 18YJKg-0002IQ-00 failed to read delivery status for
test@??? from delivery subprocess
2003-01-13 21:25:54 18YJKg-0002IQ-00 pipe transport process returned
non-zero status 0x0100: exit code 1


    The fact that it resolved the username to uid "1002" and gid
"1002" makes me think that the bizarre user@??? usernames are not
the cause of the problem.


    So what is the cause of that "unable to set gid=1002 or uid=1002
(eid=8)" error message?  I'd think this was a procmail-caused error except
that someone else posted a working procmail transport that used the exact
same 'command' line, without any options, but where "user" was set to the
local recipient.


    Any help is greatly appreciated.



Thank You,
Derek Simkowiak