[Exim] Bug? pipe transport without associated user=... runs …

Top Page
Delete this message
Reply to this message
Author: Andreas Metzler
Date:  
To: exim-users
CC: 228062
Subject: [Exim] Bug? pipe transport without associated user=... runs as EXIM_USER
Hello,

Using this router/transport

system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
file_transport = address_file
pipe_transport = address_pipe

address_pipe:
debug_print = "T: address_pipe for $local_part@$domain"
driver = pipe
return_fail_output

will run run any pipe in /etc/aliases as the EXIM_USER instead of
dumping an error (as iirc eximv3 did)[1]. This contradicts the
documentation, which says:

| In the case when "pipe" is run as a consequence of an entry in a
| local user's `.forward' file, the command runs under the uid and gid
| of that user. In other cases, the uid and gid have to be specified
| explicitly, either on the transport or on the router that handles the
| address.


For reference: This is exim 4.30 with EXIM_USER=ref:Debian-exim.

I think this is a bug as you usually don't want to run pipes as the
exim-admin user.
            cu andreas


[1] check with
echo 'foobartest: "|/bin/dd of=/tmp/foobartest"' >> /etc/aliases