I didn't want to make Listar suid, because I don't like suid
binaries hanging around the filesystem. The obvious choice was
to create an alias file /etc/aliases.listar
to
supplement /etc/aliases
. The following director was
added to the exim configure
file, right after the
system_aliases
director:
# Listar mailing lists listar_aliases: driver = aliasfile file = /etc/aliases.listar search_type = dbm user = listar initgroups owners = root errors_to = listar-owner
The Listar alias file is built as dbm. For simplicity of
maintainance, the lists file is read by newaliases.listar script whose
output is piped to exim_dbmbuild
with the following
command:
/home/listar/scripts/newaliases.listar | exim_dbmbuild - /etc/aliases.listarThis way, dbm version of
/etc/aliases.listar
is
created. Alternatively, a plain (lsearch) alias file can be
created, if you redirect the output of the script to
/etc/aliases.listar
instead of piping it.
The alias listar-owner
is defined in
/etc/aliases
, so in case of error in the Listar
alias file, the owner will be reachable. The alias
listar
is created automatically by the Listar
newaliases script and is written in
/etc/aliases.listar
, because Listar must run under
its own UID.