How to use pipe deliveries from alias files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Using pipes in the /etc/aliases file is disabled by default in the
Debian exim 4 packages, because the program would run as the exim
admin-user Debian-exim, which might open up security holes.

Invoking pipes from /etc/aliases file is widely considered obsolete
and deprecated. The Debian exim package maintainers would like to
suggest using a dedicated router/transport pair to invoke local
processes for mail processing. For example, the Debian mailman package
contains a /usr/share/doc/mailman/README.EXIM file that gives a good
example how to implement this. Using a dedicated router/transport
pairs have the following advantages:

   * The router/transport pair can be put in place by another package,
     giving a well-defined transaction point between exim4 and $PACKAGE.
   * Not allowing pipe deliveries from alias files makes it harder to
     accidentally run programs with wrong privileges.
   * It is possible to run different pipe processes under different
     accounts.
   * Even if only invoking a single local program, it is easier to do
     with your dedicated router/transport since you won't need to change
     this file, making automatic updates of this file possible for future
     versions of the exim4 packages. If you do local changes here, dpkg
     conffile handling will bother you on future updates.

If you insist on using /etc/aliases in the traditional way, you will need
to activate the "pipe_transport = ..." entry manually for the
system_aliases-router in /etc/exim4/exim4.conf.template (or if you are
using split-configuration - dc_use_split_config='true' in
/etc/exim4/update-exim4.conf.conf -
/etc/exim4/conf.d/router/400_exim4-config_system_aliases).

If any of your aliases expand to pipes or files or directories you
should set up a user and a group for these deliveries to run under.
You can do this by setting the "user" and - if necessary - a "group"
option and adding a "group" option if necessary. Alternatively, you
can specify "user" and/or "group" on the transports that are used.
Note that the transports listed in the system_aliases router are the
same as are used for .forward files; you might want to set up
different ones for pipe and file deliveries from aliases.

# vim:tabstop=3:expandtab:shiftwidth=3:textwidth=73
