home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
- A Users Guide to the
- MSG Alias System
-
- (C) Copyright 1986, by
- Dave Taylor
-
- March 15, 1986
-
-
- This document is intended as a supplement to the Msg
- Users Guide and is only of interest to those users desiring
- more knowledge about how aliases work and how to create
- strange and exciting aliases for their systems (alright, so
- it's not that exciting!)
-
-
- This document is broken up into the following sections;
- user aliases, group aliases, system aliases, editing and
- installing new aliases, the machine routing database, and
- general warnings and other chitchat.
-
-
-
- 1. User Aliases
-
- The most simple sort of aliases in the Msg system are
- individual user aliases. These are made up of three parts;
-
- <aliasname list> : <username> : <address>
-
- Where the alias list is either a single aliasname* or a list
- of aliasnames separated by commas.
-
- Username is currently a comment field, and is used to
- indicate the full "real name" that the alias is for. For
- example, if you had an alias for "dat" to get to me, the
- username field would contain "Dave Taylor" or perhaps "Dave
- Taylor, HP" or some other permutation of that. In a future
- release of the mailer, the alias system will know about this
- field and include it in outgoing messages AND as a supple-
- ment to the usual list of aliasnames.
-
- Address is either the users full electronic mail
- address or, if the machine routing database is installed,
-
-
- __________
-
- * Please see the appendix for a full definition of what
- exactly an aliasname consists of.
-
-
-
-
- Page 1
-
-
-
-
-
-
-
-
-
-
-
- the minimum address needed to specify the destination. For
- example, say our routing database contained information on
- how to get to machine "hp-sdd" and I wanted to have an
- address for my friend Ken there - I could have his address
- specified as simply "ken@hp-sdd" (or alternatively "hp-
- sdd!ken" since the two are functionally equivalent).
-
-
- Let's get on to some examples, shall we?
-
- Consider this excerpt from my own .alias_text file;
-
- wunder,walt : Walt Underwood : wunder@hpcea
- laubach : Mark Laubach : laubach@hpcea
- mary : Mary Hsia-Coron : hsia@hpindla
- decot : Dave Decot : decot@hpda
-
- jeff : Jeff Wu : hpcnoe!j_wu
- dave : Dave Barrett : hpcnof!d_barrett
-
- Note that the alias for Walt Underwood has two aliasnames
- associated with it, "wunder" and "walt". Also notice that
- the first four aliases use the ARPA style naming convention
- (user@machine) but the last two use the UUCP style conven-
- tion (machine!user). In this context it is independent.
-
- The only time when it does make a difference which
- notation you use is if you have to specify more than the
- machine that the user is receiving mail on. That is, say we
- have a friend who receives mail at a machine called
- "twinkie" and our best connection is through Georgia
- Tech...Then our alias for them could be;
-
- buddy : Our friend : gatech!twinkie!buddy
-
- or
-
- buddy2 : Our friend : gatech!buddy@twinkie
-
- but not;
-
- buddy : Our friend : buddy@twinkie@gatech
-
- (however, buddy%twinkie@gatech will also work, but that's
- far too bizarre a notation to be recommended!!) (besides
- there's no guarantee that "gatech" will like it, nor the
- "buddy2" alias above!)
-
- Anyway, suffice to say that if you must specify any
- sort of route that you should use the uucp notation as much
- as possible to ensure that the Msg system expands the
-
-
-
- Page 2
-
-
-
-
-
-
-
-
-
-
-
- correct machine name.
-
-
-
- 2. Group Aliases
-
- After the confusion of user aliases, group aliases are
- even more fun! For the most part the notation is very simi-
- lar;
-
- <aliasname list> : <groupname> : <list of people>
-
- Where aliasname list and groupname are exactly equivalent to
- the corresponding fields in user aliases.
-
- The interesting part is the list of people field! This
- field is actually in the same notation as the aliasname
- list, so it's not quite as strange as I've lead you to
- believe. It's best to illustrate by example;
-
- friends, mypals, gang : The Gang of Six : joe, larry, mary, joanna,
- nancy, michael
-
- (Notice that you can continue onto as many lines as you'd
- like so long as each additional line start with either a
- SPACE or a TAB character)
-
- The significant limitation with group aliases is that
- each of the people in the list must be a previously defined
- aliasname in either the existing alias file or the system
- alias file or a valid destination on the current machine.
-
- What does this mean? This means that the following
- excerpt from an alias file;
-
- hawaii : The Hawaiian Twins : joe@RIT-CS.ARPA, maoa
- maoa : Maoa Lichtenski Jr : maoa@Hawaii.cs.uh.ARPA
-
- will fail for two reasons - not only does the group list of
- people contain a complex address, but it also contains an
- aliasname that is defined later in the .alias_text file! **
- BEWARE!!! **
-
- The correct way to have the previous alias in the file
- is to have it like;
-
- joe : Joe Lichtenski : joe@RIT-CS
- maoa : Maoa Lichtenski Jr : maoa@Hawaii
- hawaii : The Hawaiian Twins : joe, maoa
-
- which will then work correctly.
-
-
-
- Page 3
-
-
-
-
-
-
-
-
-
-
-
- This isn't too hard now, is it?
-
- Fortunately, while this seems pretty tough, if you run the
- newalias command to install your new aliases, it will give
- you nice meaningful error messages that will help you fix
- the list up correctly!
-
-
-
- 3. System Aliases
-
- System aliases are functionally equivalent to the indi-
- vidual Msg alias lists each Msg user has (both user aliases
- and group aliases) but are "read only" for everyone but the
- Msg administrator. The format of the file is identical to
- the users file, and the only difference is that this file is
- expected to be located in the directory that contains the
- "system_hash_file" and "system_data_file" files (see the Msg
- Configuration Guide for more details on these variables).
-
- Simply create a .alias_text file in the specific direc-
- tory as you would a normal file, and install it the same way
- (see the following section for more details on that).
-
- Voila!!
-
-
-
- 4. Editing and Installing New Aliases
-
- To install new aliases, you need merely to create, or
- modify, your .alias_text file in your home directory until
- you're satisfied with it and it meets the requirements
- stated above. You can then try to install it with the com-
- mand;
-
- $ newalias
-
- which will either report back the number of aliases
- installed into the system or will report errors indicative
- of the changes that the program expects before it can accept
- the alias list.
-
- Note that blank lines are no problem and that comments
- are not only allowed but actually encouraged, and must have
- # as the first character of each comment line.
-
- Finally, if you find that you're hitting the "Too many
- aliases" error, then you'll need to reconfigure the entire
- Msg system (again, see the Msg Configuration Guide espe-
- cially the discussion on "MAX_UALIASES" and "MAX_SALIASES"
-
-
-
- Page 4
-
-
-
-
-
-
-
-
-
-
-
- therein).
-
-
-
- 5. The Hostname Routing Database
-
- Floating about on the various networks is a rather
- nifty program by a number of people, including Peter Honey-
- man and Steve Bellovin, called "pathalias". What this
- incredibly handy program does is take the strange postings
- in groups like "mod.map" and massage them into a file of the
- form;
-
- <hostname> <address>
-
- which is then sorted alphabetically and stored in the file
- pointed to by "pathfile" (guess where to look for more
- information!) for Msg to use.
-
- If you don't have the program, or don't want to use it,
- you can simulate this file by listing machines in the same
- format. The exact format expected is;
-
- <hostname><tab><machine-address>
-
- where hostname is a limited identifier (no special charac-
- ters) and machine-address MUST contain the sequence "%s"
- (and consequently any other percent signs that appear in the
- address must be paired) so that the call in the program
- "sprintf(buffer, machine-address, username)" will generate a
- valid return address.
-
- By way of example, here are a few entries from my own file;
-
- HPL hplabs!%s
- PARC hplabs!%s@Xerox.PA.COM
- amc-hq hplabs!%s@AMC-HQ.ARPA
- imsss hplabs!%s%%IMSSS@SU-AI.ARPA
- infopro hpfcla!ihnp4!astrovax!infopro!%s
- interleaf hpfcdc!hpda!sun!interleaf!%s
- jpl-vax hplabs!%s@jpl-vax
-
- As you can see, the addresses can get pretty complicated!!
- In fact it's due purely to the complication that a database
- file of this sort can be so wonderful!!
-
- If you'd like further information on the pathalias program,
- try keeping track of the entries in "mod.sources" - it's
- posted about once a year or so...
-
-
-
-
-
- Page 5
-
-
-
-
-
-
-
-
-
-
-
- 6. Other Stuff not Covered Yet
-
- Probably the biggest question you have in your mind
- right now is "But how the heck does this relate to the 'ole
- mailx aliases and the snazzo sendmail alias system??" Well,
- rest assured, sendmail fans, that if you REALLY want to have
- your aliases down in the transport you can. No problem.
- All you'll need to do is to turn off the address validation
- routine in Msg by defining the "NOCHECK_VALIDNAME" defini-
- tion (I'm not even going to bother to tell you where to look
- for this one!!).
-
- For those mailx fanatics out there, you can translate
- your aliases into the format that Msg wants by running them
- through the awk script listed in Appendix Two.
-
-
- Finally, if you have any problems or questions, try
- looking in the newalias manual entry, or dropping me a line
- at the "usual" email address (ask your administrator!).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 6
-
-
-
-
-
-
-
-
-
-
-
- Appendix One
-
- A BNF of the Alias File Grammar
-
-
- In this listing, items in <> brackets are non-terminals,
- items in {} are optional, and items in bold face are termi-
- nals.
-
-
-
- <alias_file> ::= <line> { <alias_file> }
-
- <line> ::= <comment> | <empty> | <alias>
-
- <comment> ::= .. any sequence of characters starting with '#' ..
-
- <empty> ::= .. an empty line ..
-
- <alias> ::= <user alias> | <group alias>
-
- <user alias> ::= <aliaslist> : { <comment> : }
- {<whitespace>} <address>
-
- <group alias> ::= <aliaslist> : { <comment> : }
- {<whitespace>} <list of addresses>
-
- <aliaslist> ::= <aliasname> { , <aliaslist> }
-
- <aliasname> ::= <alpha-char> { <sequence-of-chars> }
-
- <comment> ::= .. anything other than ":" ..
-
- <address> ::= <username> | <arpa-address> | <uucp-address> |
- <complex-address>
-
- <list-of-addresses> ::= <aliasname> { , <whitespace> }
- { <list-of-addresses> }
-
- <username> ::= .. any valid mailbox name on the system ..
-
- <arpa-address> ::= <username> ( @ <hostname> | <postfix> )
-
- <hostname> ::= .. any legal host machine name ..
-
- <uucp-address> ::= <hostname> ! <username>
-
- <complex-address> ::= <prefix> ( <uucp-address> | <arpa-address> )
-
- <prefix> ::= <hostname> ! { <prefix> }
-
-
-
-
- Page 7
-
-
-
-
-
-
-
-
-
-
-
- <postfix> ::= % <hostname> { <postfix> } @
- <hostname>
-
- <sequence-of-chars> ::= .. any characters other than space, tab,
- return, or colon ..
-
- <whitespace> ::= .. space, tab or newline followed by space or tab ..
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 8
-
-
-
-
-
-
-
-
-
-
-
- Appendix Two
-
- An AWK Script for
- Translating Aliases from a
- ".mailrc" Format to a
- Msg Format
-
-
- -------------------------------------------------------------------
-
- BEGIN {
- print "# MSG alias_text file, from a .mailrc file..."
- print ""
- }
-
- next_line == 1 {
-
- next_line = 0;
- group = ""
- for (i = 1; i <= NF; i++) {
- if (i == NF && $i == "\\") sep = ""
- else sep = ", "
-
- if ($i == "\\") {
- group = sprintf("%s,", group)
- next_line = 1;
- }
- else if (length(group) > 0)
- group = sprintf("%s%s%s", group, sep, $i);
- else
- group = $i;
- }
- print "\t" group
-
- }
-
- $1 ~ /[Aa]lias|[Gg]roup/ {
-
- if ( NF == 3)
- print $2 " : user alias : " $3;
- else {
- group = ""
- for (i = 3; i <= NF; i++) {
- if (i == NF && $i == "\\") sep = ""
- else sep = ", "
-
- if ($i == "\\") {
- group = sprintf("%s,", group)
- next_line = 1;
- }
- else if (length(group) > 0)
-
-
-
- Page 9
-
-
-
-
-
-
-
-
-
-
-
- group = sprintf("%s%s%s", group, sep, $i);
- else
- group = $i;
- }
- print $2 " : group alias : " group;
- }
- }
-
- -------------------------------------------------------------------
-
- Note: this script is contained in the release under the
- name "mailrc.awk" in the utilities directory "utils".
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 10
-
-
-
-
-