Annotation of 42BSD/usr.bin/uucp/UUAIDS/setup.tblms, revision 1.1.1.1

1.1       root        1: .TL
                      2: Setting up the Net
                      3: .AU
                      4: Tom Truscott
                      5: .AI
                      6: Duke University
                      7: (now at the Research Triangle Institute, NC)
                      8: January 1980
                      9: (revised 1983 to better reflect reality)
                     10: .SH
                     11: Installing files and Programs.
                     12: .PP
                     13: This paper describes how to get the system named "xyz" on the uucp net.
                     14: If you are on the net, stop reading!
                     15: In chosing your system name, keep it short (no more than 7 characters long)
                     16: and make it specific.
                     17: That is, 'physics' is a poor uucp name!
                     18: The University of California at Berkeley names their machines
                     19: ucbvax, ucbcad, ucbmone, etc.
                     20: A standard Seventh Edition
                     21: .UX
                     22: system is assumed.
                     23: [Yup, this is ancient!  I have deleted useless paragraphs -- trt]
                     24: The v7 C compiler MUST be used to recompile uucp;
                     25: the Phototypesetter version fails.
                     26: It is necessary to compile and install the mail, uucp, and news programs.
                     27: In what follows, "/bin/..." can be replaced by "/usr/bin/...".
                     28: .SH
                     29: MAIL
                     30: .PP
                     31: Ignore this section if you machine already has a network
                     32: mail program in place.
                     33: First, you must tell your machine its name.
                     34: Modern versions of UNIX use gethostname(II) or uname(II).
                     35: Ancient versions use include files.
                     36: If you are in the dark ages, edit /usr/include/whoami.h
                     37: and change the system name to xyz.
                     38: Do the same to /usr/include/ident.h
                     39: (not currently used, by the way).
                     40: Then recompile mail:
                     41: .DS
                     42: cd /usr/src/cmd
                     43: cmake mail
                     44: .DE
                     45: and copy it to /bin.
                     46: It should be setuid to root.
                     47: The network uses a restricted version of mail,
                     48: which is actually mail but invoked with a different name:
                     49: .DS
                     50: ln /bin/mail /bin/rmail
                     51: .DE
                     52: Mail should now be ready for the net.
                     53: A newer version of mail, called Mail, should be used if you have it.
                     54: It invokes a mail delivery program called delivermail
                     55: or the newer one called sendmail.
                     56: .SH
                     57: UUCP
                     58: .PP
                     59: Read the documents on uucp and uucp implementation in the
                     60: .I
                     61: .UX
                     62: Programmer's Manual.
                     63: .R
                     64: Also read the manual pages for uucp and uux.
                     65: .NH 1
                     66: Getting ready to install uucp
                     67: .PP
                     68: Edit /etc/passwd to add the user "uucp" to your system.
                     69: Uucp should have unique user and group ids (for security).
                     70: Duke's uucp and daemon have the same group id,
                     71: so they can both access /dev/dn?
                     72: which is not accessible by "others."
                     73: Uucp will own the directories and other files of the uucp system.
                     74: Actually, it is nice to also add the user "UUCP" as a synonym for "uucp",
                     75: and put "UUCP" earlier in /etc/passwd.
                     76: That way uucp will identified as UUCP in mail messages, etc.,
                     77: which highlights the fact that the messages are machine generated.
                     78: Here are typical lines:
                     79: .DS L
                     80: UUCP:iPkI/ZUX3YX2Y:4:19::/usr/spool/uucppublic:/usr/lib/uucp/uucico
                     81: uucp:iPkI/ZUX3YX2Y:4:19::/usr/spool/uucppublic:/usr/lib/uucp/uucico
                     82: .DE
                     83: .NH 1
                     84: Installing uucp programs
                     85: .PP
                     86: To install uucp, read the INSTALL file in the uucp directory
                     87: and follow the instructions.
                     88: It references other documentation, which should also be read.
                     89: .NH 1
                     90: Files in /usr/lib/uucp
                     91: .PP
                     92: All of these files should have the uid and gid of uucp,
                     93: and should not be readable (or writable) by others.
                     94: The files "L-devices" and "L-dialcodes"
                     95: are needed only if xyz calls other systems.
                     96: The file formats are described in the documentation
                     97: and are straightforward.
                     98: The USERFILE file should have one line for each system which calls xyz:
                     99: .DS
                    100: Uduke,duke  /usr/spool/uucppublic
                    101: ,xyz /
                    102: .DE
                    103: The first line of the sample USERFILE indicates
                    104: that the duke system uses login name Uduke
                    105: and can access the public directory.
                    106: Here is a typical "Uduke" line in /etc/passwd:
                    107: .DS L
                    108: Uduke:PSB8EZ5w2tQ4I:4:19::/usr/spool/uucppublic:/usr/lib/uucp/uucico
                    109: .DE
                    110: This line differs from that for uucp
                    111: only in having a different login name and password.
                    112: The last line of USERFILE should be ",xyz /",
                    113: which permits local users but not remote systems
                    114: to access anything on xyz.
                    115: [Actually, USERFILE is a real botch.  If you want security,
                    116: never given anyone permission from '/'.]
                    117: .PP
                    118: The file L.sys has a line for each system
                    119: with which xyz communicates.
                    120: If xyz DOES NOT place calls to Duke
                    121: then the L.sys line for Duke might be:
                    122: .DS
                    123: duke None ACU 300 123-4567 ogin Uxyz ssword fooha
                    124: .DE
                    125: This line indicates that xyz should never ("None") call Duke.
                    126: If xyz DOES place calls to Duke
                    127: then the line must be altered to so indicate.
                    128: The documentation explains that case fairly well.
                    129: .NH 1
                    130: Getting it running
                    131: .PP
                    132: Uucp is now ready for execution.
                    133: If Duke is to call xyz,
                    134: the xyz system can request that Duke send mail
                    135: to test its operation.
                    136: /usr/spool/uucp/LOGFILE, SYSLOG, and ERRLOG
                    137: are useful logs of uucp activity.
                    138: If uucp does not work, and the problems cannot be resolved,
                    139: xyz could give Duke another login on xyz
                    140: so someone here can poke around
                    141: and see what the problem might be.
                    142: The login should have the same uid and gid as uucp
                    143: but without a uucico "shell".
                    144: .PP
                    145: If xyz can place calls to another system,
                    146: a good test is to try to place the call.
                    147: Suppose xyz has both a call-out and a call-in line.
                    148: Then an entry for the mythical system "foo"
                    149: can be put in the L.sys and USERFILE files,
                    150: and xyz can call itself as follows:
                    151: .DS
                    152: echo "test 1" | mail foo!root
                    153: echo "test 2" | mail foo!xyz!root
                    154: echo "test 3" | mail foo!foo!root
                    155: .DE
                    156: Mail sent from system xyz to itself
                    157: causes a local invocation of mail.
                    158: Mail sent to the mythical system "foo" will,
                    159: however, place a call to send the mail.
                    160: Uucp will complain about locking,
                    161: and shell metacharacters may not work,
                    162: but the communication should still succeed.
                    163: Even if xyz has only a call-in or call-out unit
                    164: it may be possible to fake the other one
                    165: by putting a null modem between the two lines.
                    166: [Unfortunately, the newest version of uucp
                    167: botches loop testing fairly badly.
                    168: But you can observe it successful connect.]
                    169: .PP
                    170: Also helpful is use of the "-x" debugging option.
                    171: The debugging information produced by
                    172: this blatant security hole
                    173: is truly a wonder to behold.
                    174: When it is in effect, the /usr/spool/uucp/AUDIT
                    175: file at the remote end will also collect debugging information.
                    176: .NH 1
                    177: Cleaning up after uucp
                    178: .PP
                    179: Uucp will run okay without any cleanup;
                    180: however, the uucp files can become immense.
                    181: Duke runs several shell files via cron(8).
                    182: These are in uuaids/uu.*.
                    183: Systems which call Duke should run the following script occasionally:
                    184: .DS
                    185: /usr/lib/uucp/uucico -r1 -sduke
                    186: .DE
                    187: Systems which call-out can
                    188: request uucp to transmit waiting files:
                    189: .DS
                    190: /usr/lib/uucp/uucico -r1
                    191: .DE
                    192: The standard version of cron runs with uid "daemon"
                    193: which may not be able to run the cleanup or uucico scripts.
                    194: The scripts could be run via at(1),
                    195: or you could remove the "setuid(1);" at the start of cron.
                    196: Then cron gives superuser privileges to its children.
                    197: As a precaution, we run a program
                    198: which does a setuid to uucp before invoking the scripts.
                    199: .NH 1
                    200: Obscure problems that can happen
                    201: .PP
                    202: When uucp logs in, it is greeted (in standard V7 systems)
                    203: with the message of the day, "you have mail.", and so forth.
                    204: Sometimes these messages cause uucp to fail.
                    205: One cure is for login to suppress the messages
                    206: when the user has a non-standard shell (e.g. uucico).
                    207: .PP
                    208: If you have implemented your own tty handler,
                    209: be sure it supports 8 bit RAW input and output.
                    210: You should compare your own handler
                    211: with that of the standard tty.c,
                    212: and make sure the RAW mode execution is the same.
                    213: [This version does not yet support 7 bit datapath.]
                    214: .SH
                    215: USING THE NET
                    216: .PP
                    217: The simplest and least error-prone use of the net
                    218: is that of sending mail from one system to another.
                    219: A user on xyz can send a letter to Duke as follows:
                    220: .DS
                    221: echo "xyz lives" | mail duke!root
                    222: .DE
                    223: A letter can be sent to unc as follows:
                    224: .DS
                    225: echo "xyz lives on" | mail duke!unc!root
                    226: .DE
                    227: Here are some local network enthusiasts:
                    228: [I only kept this around for historical interest.]
                    229: .TS
                    230: l l l.
                    231: duke!swd       Steve Daniel    C version of news
                    232: duke!jte       duke system administrator
                    233: duke!trt       Tom Truscott    network enthusiast
                    234: duke!unc!smb   Steve Bellovin  network news architecture
                    235: duke!phs!dennis        Dennis Rockwell V6/PWB UNIX enthusiast
                    236: .TE
                    237: .PP
                    238: Uucp provides a convenient way
                    239: to transfer files between systems.
                    240: Files may be transferred by mailing them,
                    241: but that can get annoying.
                    242: Here are some hints for using uucp.
                    243: .IP 1.
                    244: By convention, the name "~uucp" may be used to access
                    245: the public directory on any system.
                    246: Thus,
                    247: .ti +5
                    248: uucp -m -d x.c duke!~uucp/xyz/
                    249: .br
                    250: copies the file x.c to the subdirectory xyz
                    251: of Duke's public directory (/usr/spool/uucppublic).
                    252: The "-m" option requests that mail be sent when x.c is transmitted.
                    253: The "-d" option requests that the remote system
                    254: create any directories that are needed
                    255: (in this case, the subdirectory xyz).
                    256: The final "/" in ".../xyz/"
                    257: informs uucp that xyz is a directory and not an ordinary file.
                    258: .IP 2.
                    259: uucp -d -m x.c duke!unc!~uucp/xyz/
                    260: .br
                    261: will not work since uucp cannot handle "duke!unc!".
                    262: Uucp and uux work only between two systems;
                    263: they do not handle a system-pathname sequence as does mail.
                    264: [See uusend for a uucp-like multi-hop copy program.]
                    265: .SH
                    266: NEWS
                    267: .PP
                    268: You are not running the distributed bulletin board?!
                    269: Poor innocent.  Don't start.  You can never go back.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.