Annotation of 43BSD/usr.bin/uucp/UUAIDS/setup.tblms, revision 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.