Manual Lookup
This index can be searched by supplying a specific command name or a regular expression prefixed with a slash (/).
You might also be interested using tkman, which provides a graphical interface to the man pages.
[ Searched 63 directories in 0 seconds. ]
[ /usr/local/man/cat1/mlalias.1 ]
MLALIAS(1L) MLALIAS(1L)
NAME
mlalias - program to examine and manipulate the mail alias database.
SYNOPSIS
mlalias [-CTpqrtv] alias [-A owner] [-D owner]
[-M moderator] [-c comment]
[-a address...] [-d address...] [-s address...]
[-f flagname] [-u username]
mlalias -R alias
mlalias -l [-Trv]
mlalias -e [-nx] [-H homedomain] [-S sender] alias
mlalias -E [-nx] [-H homedomain] [-S sender]
mlalias -m alias [ address ]
mlalias -mg [ address ]
mlalias -L [flagname]
DESCRIPTION
mlalias is the user agent for accessing and modifying the mail alias
database.
The mail alias database contains alias, mailing lists, and forwarding
information. Each entry contains:
A name which is the key by which entries are looked up. When comparing
keys, the case of letters is ignored, and hyphen, underscore and
period ('-', '_', '.') are treated as equivalent.
A comment
which can be used to describe the purpose of this entry
A list of addresses
to which mail to this alias should be sent.
These address should be RFC822 conforming addresses, optionally
with the @domain part left off. Thus they can have comments
included with individual addresses.
When an address is local, it is best to give just the localpart
without the domain or any other decoration, as then mlalias can
immediately expand the name if a local alias exists. See RFC822
for definitions of addresses, domains and localparts.
A list of owners
who are allowed to change the entry, and are considered respon-
sible for it. This list can also contain email addresses and
netgroups of people who are allowed to post to moderated
(restricted) aliases.
A list of flags which selected between
personal/system, public/private, privileged/unprivileged, moder-
ated/members_can_post/unmoderated, and open/closed/optional.
In the alias database there is a distinguished alias called postmaster.
The owners of this alias have ownership rights to every possible alias
in the database, and thus can create any new alias.
Users who are not registered owners of postmaster have more restricted
rights. They only have ownership rights to names:
Which match their username,
For which an alias exists that has that user listed as an owner,
or
which have, as a prefix, a name which the user owns followed by
a period.
e.g. If the user user1 is not an owner of postmaster but is an owner of
name1 then user1 has ownership rights over the names user1 user1.test
name1 name1.fred name1.fred.frog etc. This means that they can create
aliases with these names and may manipulate them in various ways.
Given this definition of name ownership, the following gives a complete
list of access permissions to aliases. Note that the right to post to
a moderated list is quite separate from these right, and is discussed
later.
Owners of the alias postmaster may create, delete, change or
examine anything.
Any owner of an alias may delete, change or examine that alias,
providing that after the change, the owner is still an owner of
the alias.
Any user can create an alias providing that the alias does not
already exist, and that the user is an owner of the name, as
defined above.
Any user can add their username to, or remove their username
from, the list of addresses of any alias that is open.
Anyone can examine any public alias.
No other access is permitted.
By default, mlalias will show the alias in a human readable format
after a manipulation of the database has occurred, providing the alias
was not private. Specifying the ``-r'' option (for ``raw'') produces a
machine readable format with one line per entry. Specifying the ``-q''
option is for quiet mode, no output is generated however an exit status
is returned.
OPTIONS
Options are as follows:
-C Create a new mail alias. By default the alias address list and
comment field will be empty, the owner will be the user who cre-
ated the alias and the alias will be closed, private and per-
sonal. Users can only create aliases for names which they own.
See definition of name ownership above.
-R Remove a mail alias. The user must be an owner of the alias or
an owner of the postmaster alias.
-A Add an owner to a mail alias. The user must be an owner of the
alias or an owner of the postmaster alias.
-D Delete an owner from a mail alias. The user must be an owner of
the alias or an owner of the postmaster alias.
-M Make a particular owner the moderator of the alias (for moder-
ated aliases). This is similar to -A but makes sure that the
given name is listed first among the owners, so that it is
treated as the moderator. The user must be an owner of the
alias or an owner of the postmaster alias.
-E Expand an alias or list of aliases read from stdin.
-e Expand a list of aliases and list all the mail addresses which
belong to the alias. The alias has to be public or the user must
be an owner of the alias or an owner of the postmaster alias.
The addresses are listed one per line. If any address in the
address list for an expanded alias has an alias entry itself,
that alias is expanded. See ``Expansion'' for more details.
-n This is used in conjunction with -e or -E to inhibit the expan-
sion of aliases. Rather, any name given which is the name of an
alias is written to standard error. Other names, will be written
to standard out.
-x This is used in conjunction with -e or -E in order to get an
explanation (x for eXplanation) of expansions. Rather than just
listing all the final, un-expandable addresses,
-i Enter interactive address checking mode. mlalias will read
lines from input, strip surrounding spaces, and check if the
name is a valid alias. If it is the name is output with a lead-
ing plus sign (+). If not, it is output with a leading minus
sign (-). If an error occurs during alias lookup, the name is
output with a leading question mark (?). This can be used with
the -w flag to easily check if a number of local addresses are
valid. mlalias will list each final address preceded by an path
tracing how the address was arrived at. The path will contain a
number of words separated by commas. The first word will always
be ARG indicating that the address arrived (eventually) from an
ARGument to the program. Subsequent words will be the names of
aliases that were expanded in arriving at this address, or will
be the word Moderator. The word Moderator indicates that the
preceding word in the list names a moderated alias, and that it
is being expanded to the address of the moderator instead of the
members of the list. If no alias expansion was performed at all
to get an address, i.e. the address was given to mlalias and no
expansions were found, then the path given will just be the sin-
gle word ARG.
mlalias will only be able to tell if a moderated list should be
expanded to the moderator or to the members if the -S flag
described below is used.
If a particular final address is reached through multiple paths,
then it will be listed multiple times, once for each path,
except that if two paths end in the same alias, then only one of
them will appear. This is an implementation peculiarity which
should not be depended upon and may change.
-S sender
email address of sender of mail for checking permission to send
to moderated lists. This is only meaningful with -e or -E.
When expanding a moderated alias, mlalias needs to know if the
sender is authorised or not. If the sender is authorised, then
the alias is expanded normally. If the sender is not authorised,
the alias is expanded to the first address listed as an owner
i.e. the moderator. The -S flag is always used when the mail
system does expansion so that mlalias can make a judgment on
where to send the mail.
-H homedomain
local domain name to strip off the sender so that mail sent from
local addresses will be checked against local names properly.
This is only meaningful with -e or -E and -S. i.e. if the local
domain is cse.unsw.edu.au and the user neilb (who is an owner of
the alias in question) sends mail to a moderated alias, mlalias
will be told, via the -S flag that the sender is
neilb@cse.unsw.edu.au. In order of mlalias to determine that
the mail is from an owner, it needs to know that the
@cse.unsw.edu.au can be stripped off before comparing owners.
This flag is used to tell it that.
-a Add the list of addresses to the alias. The user must be an
owner of the alias or an owner of the postmaster alias, or the
alias must be open and the address given must be the user's
username.
-d Delete the list of addresses from the alias. The user must be
an owner of the alias or an owner of the postmaster alias, or
the alias must be open and the address given must be the user's
username.
Note that it is possible to delete an address from an alias even
if it is not explicitly in the address list, but is only
implicit through membership of a list within the list. This is
achieved by adding the deleted address, prefixed with an excla-
mation mark, to the address list. The expansion process under-
stands this to mean that the address, if ever found in a sub-
sidiary aliases, should be excluded.
As addresses can often be long, mlalias makes it possible to
delete an address without giving the whole address. If any of
the addresses given to mlalias -d starts with a slash (/), then
mlalias will see if there are any addresses in the alias which
contain the string following the slash. If there is precisely
one such address, then mlalias will asusme that is the address
to be deleted.
-f flagname
Set the given flag. See ``flags'' below for listing the the
various flags. The user must be an owner of the alias or an
owner of the postmaster alias.
-c comment
Replace the comment associated with the alias. The user must be
an owner of the alias or an owner of the postmaster alias.
-r Show the alias in its computer readable format. The alias must
be public or the user must be an owner of the alias or an owner
of the postmaster alias. Each alias record is made up of field
separated by colons where some fields are lists separated by
commas. This computer readable format is:
alias_name:alias_comment:addresslist[,elmnt...]:own-
erlist[,elmnt...]:date_last_changed:date_last_accessed:flags;
where dates and flags are integers.
-s alias [address..]
Set the address list in the alias to address(es) provided.
-m alias address
Find out whether address is in the recursively expanded alias.
The alias and any intermediate alias must be public or the user
must be an owner of the alias or an owner of the postmaster
alias. This does not properly check recursive membership
through virtual aliases.
-mg [address]
To test membership globally. Checks for address within each
entry of the mlalias database. If address is not provided the
current user name is checked.
-l List of all the alias names which exist in the alias database.
The aliases are listed one per line.
-L flagname
List all of the aliases in the aliases database which have the
given flag set. The aliases are listed one per line.
-v Verbose list mode. Lists the alias name and its associated com-
ment. This is only meaningful with -l and -L.
-u username
Ask mlalias to do access checks assuming that it is being run by
the given user. This will only be permitted if mlalias is being
run as root, or if the given user has the name UID as the user
who is running mlalias. This means that a user with two regis-
tered names (e.g. a student-number name and another name) can
access aliases using either of these names.
-p Print alias listing after changes. Otherwise only success/error
messages are printed. Note that this behaviour was previously
the default.
-q Quiet mode, no output is generated (including error messages)
however an exit status is returned.
-T Trace the communication protocol between server and client.
Used for debugging purposes.
-w This poorly named flag causes mlalias to treat all usernames as
aliases to themselves, if they aren't real aliases. This allows
mlalias to be used to simply test if an address is a valid local
address, as it much be an alias understood by an alias, or a
valid user name.
FLAGS
There are six pairs of flags meaningful for aliases. Five of these can
be set one way or the other on aliases, and can be matched on using the
-L list flag. The fifth, virtual/real is only for display purposes. It
is not meaningful to set or match on it. The pairs are:
personal/system
This distinction is purely for human convenience. People often
want to look though the list of aliases without being bothered
by individual personal aliases. Aliases are created as personal
by default, but can set to system by the owner.
closed/open/optional
If an alias is open, then any user can add or delete their user-
name from the list of addresses in the alias. This allows self-
subscription to lists. If an alias is optional then any user
can delete themselves (if they are on the list) but cannot add
themselves. Aliases are closed by default.
private/public
A private alias can only be viewed by an owner. A public alias
can be viewed by anybody. Making an alias private does not stop
anyone sending mail through that alias. It only stops people
seeing the list of addressees using mlalias. Aliases are pri-
vate by default.
moderated/unmoderated/members_can_post
If an alias is moderated, the mail will only be sent to the
addressees if it comes from an owner. If mail comes from any
address not listed as an owner, then it will be sent to the
first name on the owners list, who is considered to be the
moderator.
If an alias is members_can_post, then messages will only be for-
warded to the moderator if they are not from an authorised
poster or from a member of the list. See owners below for more
detail on how the owner list is interpreted.
privileged/unprivileged
If an alias is privileged then any mail sent to it by an autho-
rised poster (owner) will successfully be sent to any moderated
aliases that are mentioned on the address list, rather than to
the moderator of those aliases. Only an owner of postmaster may
set the privileged flag.
virtual/real
Virtual aliases are described below, and don't exist in the
alias database. Thus they cannot be changed or deleted using
mlalias. It is not possible to set the virtual flag on an alias.
OWNERS
There can be three types of names given in the owners field. The dis-
tinctions are only really relevant for moderated aliases, but can
affect other aliases too.
True Owners
Any owner which does not contain an '@' sign is considered to be
a true owner. The name will normally be a username of a user on
the system. Such an owner has complete access and modify rights
to the alias (except as noted below), can post to the alias even
if it is moderated, and will be included in the owner-aliasname
list of the alias. Note: The only modify restriction placed on
true owners is that they cannot remove themselves as an owner of
the mlalias. In order to hand over ownership of an mlalias the
owner should add a new owner, then ask the new owner to remove
them.
Netgroup owners
Any owner which starts with an '@' sign is a netgroup owner. Any
(local) user who is a member of that netgroup (the owner with
the '@' removed) is allowed to post to the alias even if it is
moderated. They do no have any other ownership rights.
Authorised Posters
Any owner which contains an '@' sign which is not at the start
is an authorised poster. The "owner" is assumed to be an email
address, and any mail from that address is passed to the
addresses in the alias even if the alias is moderated. Autho-
rised posters are not on the owner-aliasname virtual list.
VIRTUAL ALIASES
As well as the aliases stored in the alias database, mlalias can
inspect and expand, but not modify, a number of virtual aliases. Any
name that would otherwise be a virtual alias can be overridden by cre-
ating an entry in the alias database with the same name. i.e. real
aliases override virtual aliases.
The classes of virtual aliases are:
Owner aliases.
Any alias with a name that starts owner- is assumed to be an
alias for the list of owners of the alias whose name follows the
owner- prefix. Thus owner-ss is a virtual alias which will send
mail to anyone listed as an owner of the ss mail alias. The
owner of all owner- aliases is postmaster and any alias which
starts owner-owner- will contain precisely postmaster in the
address list.
Related to owner aliases are aliases. Any alias with a name
that starts moderator- is assumed to be an alias for the modera-
tor of the alias whose name follows the moderator- prefix. If
the named alias is not moderated, then the first owner listed in
the owner list will be given as the moderator.
username aliases
mlalias will check any unknown name to see if it is a valid
username, and if so will map the user-id back to a username. If
the user name it gets back is different, implying that the user
has multiple user names, a virtual alias is created with the
primary username as the address list.
Yellow Pages aliases
Largely for historical reasons, mlalias will lookup any unknown
name in the mailforward YP map. If a non-empty match is found,
a virtual alias is created accordingly.
netgroup aliases
If an alias ends with -list, for example comp1011-list, the
remainder of the name is looked up in the netgroup YP map. If a
netgroup with that name exists then a virtual alias is created
containing all users in the netgroup as the address list.
A netgroup alias will always be moderated, and will get a list
of owners (to determine allowed posters) by looking up the net-
group name in the aliasowner YP map.
This functionality is currently implemented in the server, but
will hopefully be move to the client one day.
EXPANSION
The mail system uses the -e or -E flag to find and expand aliases in
recipient addresses. These command expand aliases recursively and take
care to avoid recursion. There are a couple of special cases in the
expansion processes.
1 If one of the addresses in an alias matches the name of the
alias exactly, then the address is not expanded again, but is
included in the final list of addresses. Thus by creating an
alias called, for example, fred and setting the address list to
fred and frederick@other.place mail to fred will be delivered to
fred locally and to frederick@other.place.
Note that this only works for singly recursive aliases. If alias
A contains address B and address B contains address A then the
expansion of either alias will be not include either A or B.
Also, this only works for local recursion. If the local domain
is "cse.unsw.edu.au" and the alias fred contains the address
fred@cse.unsw.edu.au then mlalias will not notice, and a local
forwarding loop will be created, which the mail system should
eventually detect and cause the message to be returned to
sender.
2 If the address list for an alias is empty, then it is treated as
though it didn't exist and the name of the alias is included in
the final list of addresses. This means that accidentally cre-
ating an empty mail alias will not cause all your mail to be
lost. It also means that if you want to create a mail list
which does discard all mail, you have to try harder (e.g. by
creating two mutually recursive aliases).
3 If an alias is moderated, and the -S and -H flags indicate that
the expansion is not being done on behalf of an owner, then
rather than expanding the alias to the list of addresses, it is
expanded to the first name of the list of owners. This owner is
deemed to be the moderator, and is free to forward the mail to
the list if they so choose.
ERRORS
All errors are reported unless otherwise requested by setting the
silent mode, mlalias returns the following exit status:
0 Success
1 Alias already exists (or doesn't exist)
2 No permission to perform operation
3 Failed to communicate with server or system error
EXAMPLES
To view the alias "croissant_club":
mlalias croissant_club
The output will be of the form:
alias: croissant_club
addresses:
jane
john
albert
owners: albert
last changed: Thu Jan 23 14:56:18 1992
last accessed: Thu Jan 23 14:56:18 1992
Status: closed and public and personal
To create an alias "compsoc" with the comment ``computer group alias''
and add the addresses fred, john and steve:
mlalias -C compsoc -c ``computer group alias'' -a fred john steve ...
...
To add fred and john to the compsoc ownerlist:
mlalias -A fred -A john compsoc
To delete steve as an owner and addressee of compsoc and make compsoc
private and closed:
mlalias -d compsoc steve -f pri -f closed -D steve
To see if fred is an addressee of compsoc:
mlalias -m compsoc fred
To list all of the addresses of compsoc:
mlalias -e compsoc
To remove the alias compsoc from the mail alias database:
mlalias -R compsoc
SEE ALSO
decode_aliases(8m), make_aliases(8m), alias_server(8m), netgroup(4).
MLALIAS(1L)
|