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