The source and type of aliases are controlled by the
AliasFile
option and the aliases
entry in the service-switch file.
Alias entries are built from key and value pairs where the
key (the list name) is on the left, followed by a colon,
then by one or more members that form the value
(see §24.1):
list: member1, member2, ...
The sequence of members can be continued on subsequent lines by beginning each such continuation line with white space.
list: member1, member2, member3, member4, ...
Each list member may be a user address,
a file name, a program reference,
or a :include:
reference.
Are either standard email addresses (a local user or alias name or a user@host, where comments and "Full Name <user@host>" syntaxes are acceptable), or a local user name prefixed with a backslash (which forces immediate delivery, see §24.2.1).
Are specified by prefixing the file name with a forward slash (e.g., /path/file); thus all file specifications must be full pathnames. Files must be world writable, or must have the setuid bit set but no execute bits set. Delivery is made by appending the message to the file (see §24.2.2).
Are specified by prefixing the program with a vertical bar
(e.g., |/path/program). If the program's invocation includes
command-line arguments, it must be quoted.
Programs are run as the sender (if local)
or the default user
(set by the DefaultUser
option).
Delivery is made by piping the message through the program
(see §24.2.3).
:include:
Says that additional aliases will be read from a specified file, which must be a full pathname:
:include: /path/file
The file listed in a :include:
reference must be world readable.
The syntax of a file is identical to the syntax of a .forward file
(described below).
The owner of the :include:
file is used for the permissions for
writing files,
running programs,
and reading recursive :include:
files
(see §25.2).
Aliases are not processed until the alias database is rebuilt using the newaliases command or the -bi command-line switch (see §24.5.1).