|
|
1.1 ! root 1: .\" This file is automatically generated. Do not edit! ! 2: .SC MH\-ALIAS 5 ! 3: .NA ! 4: mh\-alias \- alias file for MH message system ! 5: .SY ! 6: any \fIMH\fR command ! 7: .DE ! 8: This describes both \fIMH\fR personal alias files and ! 9: the (primary) alias file for mail delivery, the file ! 10: ! 11: /usr/new/lib/mh/MailAliases ! 12: ! 13: It does \fBnot\fR describe aliases files used by the message transport system. ! 14: Each line of the alias file has the format: ! 15: ! 16: alias : address\-group ! 17: .br ! 18: or ! 19: .br ! 20: alias ; address\-group ! 21: .br ! 22: or ! 23: .br ! 24: < alias\-file ! 25: .br ! 26: ! 27: where: ! 28: ! 29: address\-group := address\-list ! 30: .br ! 31: | \*(lq<\*(rq file ! 32: .br ! 33: | \*(lq=\*(rq UNIX\-group ! 34: .br ! 35: | \*(lq+\*(rq UNIX\-group ! 36: .br ! 37: | \*(lq*\*(rq ! 38: ! 39: .br ! 40: address\-list := address ! 41: .br ! 42: | address\-list, address ! 43: .br ! 44: ! 45: Continuation lines in alias files end with `\\' followed by the newline ! 46: character. ! 47: ! 48: Alias\-file and file are UNIX file names. ! 49: UNIX\-group is a group name (or number) from \fI/etc/group\fR. ! 50: An address is a \*(lqsimple\*(rq Internet\-style address. ! 51: Througout this file, case is ignored, except for alias\-file names. ! 52: ! 53: If the line starts with a `<', then the file named after the `<' is ! 54: read for more alias definitions. The reading is done recursively, so a `<' ! 55: may occur in the beginning of an alias file with the expected results. ! 56: ! 57: If the address\-group starts with a `<', ! 58: then the file named after the `<' is read and its contents are added to ! 59: the address\-list for the alias. ! 60: ! 61: If the address\-group starts with an `=', ! 62: then the file \fI/etc/group\fR is consulted ! 63: for the UNIX\-group named after the `='. ! 64: Each login name occurring as a member of the group is added to the ! 65: address\-list for the alias. ! 66: ! 67: In contrast, if the address\-group starts with a `+', ! 68: then the file \fI/etc/group\fR is consulted ! 69: to determine the group\-id of the UNIX\-group named after the `+'. ! 70: Each login name occurring in the \fI/etc/passwd\fR file whose group\-id ! 71: is indicated by this group is added to the address\-list for the alias. ! 72: ! 73: If the address\-group is simply `*', ! 74: then the file \fI/etc/passwd\fR is consulted ! 75: and all login names with a userid greater than some magic number ! 76: (usually 200) are added to the address\-list for the alias. ! 77: ! 78: In match, a trailing * on an alias will match just about anything appropriate. ! 79: (See example below.) ! 80: ! 81: An approximation of the way aliases are resolved at posting time is ! 82: (it's not really done this way): ! 83: ! 84: .in +.5i ! 85: 1) Build a list of all addresses from the message to be ! 86: delivered, eliminating duplicate addresses. ! 87: ! 88: 2) If this draft originated on the local host, ! 89: then for those addresses in the message that have no host specified, ! 90: perform alias resolution. ! 91: ! 92: 3) For each line in the alias file, ! 93: compare \*(lqalias\*(rq against all of the existing addresses. ! 94: If a match, remove the matched \*(lqalias\*(rq from the address list, ! 95: and add each new address in the address\-group to the address list ! 96: if it is not already on the list. ! 97: The alias itself is not usually output, ! 98: rather the address\-group that the alias maps to is output instead. ! 99: If \*(lqalias\*(rq is terminated with a `;' instead of a `:', ! 100: then both the \*(lqalias\*(rq and the address are output ! 101: in the correct format. ! 102: (This makes replies possible since \fIMH\fR aliases and ! 103: personal aliases are unknown to the mail transport system.) ! 104: .in -.5i ! 105: ! 106: Since the alias file is read line by line, forward references ! 107: work, but backward references are not recognized, thus, there is ! 108: no recursion. ! 109: ! 110: \fBExample:\fR ! 111: .nf ! 112: .in +.5i ! 113: </usr/new/lib/mh/BBoardAliases ! 114: sgroup: fred, fear, freida ! 115: fred: frated@UCI ! 116: UNIX\-committee: <unix.aliases ! 117: staff: =staff ! 118: wheels: +wheel ! 119: everyone: * ! 120: news.*: news ! 121: .in -.5i ! 122: .fi ! 123: ! 124: The first line says that more aliases should immediately be read from ! 125: the file \fI/usr/new/lib/mh/BBoardAliases\fR. ! 126: Following this, \*(lqfred\*(rq is defined as an alias for ! 127: \*(lqfrated@UCI\*(rq, ! 128: and \*(lqsgroup\*(rq is defined as an alias for ! 129: the three names \*(lqfrated@UCI\*(rq, \*(rqfear\*(rq, and \*(rqfreida\*(rq. ! 130: Next, the definition of \*(lqUNIX\-committee\*(rq is given by reading ! 131: the file \fIunix.aliases\fR in the users \fIMH\fR directory, ! 132: \*(lqstaff\*(rq is defined as all users who are listed as members of ! 133: the group \*(lqstaff\*(rq in the \fI/etc/group\fR file, ! 134: and \*(lqwheels\*(rq is defined as all users whose group\-id in ! 135: \fI/etc/passwd\fR is equivalent to the \*(lqwheel\*(rq group. ! 136: Finally, \*(lqeveryone\*(rq is defined as all users with a user\-id in ! 137: \fI/etc/passwd\fR greater than 200, ! 138: and all aliases of the form \*(lqnews.<anything>\*(rq are defined ! 139: to be \*(lqnews\*(rq. ! 140: ! 141: The key thing to understand about aliasing in \fIMH\fR ! 142: is that aliases in \fIMH\fR alias files are expanded into the ! 143: headers of messages posted. ! 144: This aliasing occurs first, ! 145: at posting time, ! 146: without the knowledge of the message transport system. ! 147: In contrast, ! 148: once the message transport system is given a message to deliver ! 149: to a list of addresses, ! 150: for each address that appears to be local, ! 151: a system\-wide alias file is consulted. ! 152: These aliases are \fBNOT\fR expanded into the headers of messages delivered. ! 153: .Hh ! 154: To use aliasing in \fIMH\fR quickly, do the following: ! 155: ! 156: .in +.5i ! 157: First, in your \fI\&.mh\(ruprofile\fR, ! 158: choose a name for your primary alias file, say \*(lqaliases\*(rq, ! 159: and add three lines: ! 160: ! 161: .nf ! 162: .in +.5i ! 163: ali: \-alias aliases ! 164: send: \-alias aliases ! 165: whom: \-alias ailases ! 166: .in -.5i ! 167: .fi ! 168: ! 169: Second, create the file \*(lqaliases\*(rq in your \fIMH\fR directory. ! 170: ! 171: Third, start adding aliases to your \*(lqaliases\*(rq file as appropriate. ! 172: .in -.5i ! 173: .Fi ! 174: ^/usr/new/lib/mh/MailAliases~^Primary alias file ! 175: .Pr ! 176: None ! 177: .Sa ! 178: ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8) ! 179: .De ! 180: None ! 181: .Co ! 182: None ! 183: .Hi ! 184: In previous releases of \fIMH\fR, ! 185: only a single, system\-wide mh\-alias file was supported. ! 186: This led to a number of problems, ! 187: since only mail\-system administrators were capable of (un)defining ! 188: aliases. ! 189: Hence, ! 190: the semantics of mh\-alias were extended to support personal alias files. ! 191: Users of \fIMH\fR no longer need to bother mail\-system administrators for ! 192: keeping information in the system\-wide alias file, ! 193: as each \fIMH\fR user can create/modify/remove aliases at will from any ! 194: number of personal files. ! 195: .Bu ! 196: Although the forward\-referencing semantics of \fImh\-alias\fR files prevent ! 197: recursion, the \*(lq<\ alias\-file\*(rq command may defeat this. Since the ! 198: number of file descriptors is finite (and very limited), such infinite ! 199: recursion will terminate with a meaningless diagnostic when all the fds are ! 200: used up. ! 201: .En
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.