Annotation of 43BSDReno/share/doc/smm/09.uucpimpl/implement.ms, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1986 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)implement.ms        6.4 (Berkeley) 8/27/86
                      6: .\"
                      7: .ds UU UUCP
                      8: .ds Uu U\s-2UCP\s+2
                      9: .ds uu \s-2UUCP\s+2
                     10: .TL
                     11: Installation and Operation of \*(UU
                     12: .br
                     13: 4.3BSD Edition
                     14: .AU
                     15: D. A. Nowitz
                     16: .AI
                     17: AT&T Bell Laboratories
                     18: Murray Hill, New Jersey 07974
                     19: .AU
                     20: Carl S. Gutekunst
                     21: .AI
                     22: Communications Software Research and Development
                     23: Pyramid Technology Corporation
                     24: Mountain View, California 94039
                     25: .AB
                     26: \*(Uu is a series of programs designed to permit communication
                     27: between
                     28: .UX
                     29: systems using a variety of communications links.
                     30: \*(Uu provides batched, error free file transfers and remote command
                     31: execution.
                     32: It is well suited for tasks such as electronic mail, public news networks,
                     33: and software distribution, particularly when only slow,
                     34: low-cost communication links are available (e.g., 1200 baud dial-up).
                     35: .PP
                     36: This document describes the 4.3BSD version of \*(Uu.
                     37: This is a distant but direct descendent of the ``second implementation''
                     38: of \*(Uu developed by D. A. Nowitz at AT&T Bell Laboratories.
                     39: A number of other \*(Uu versions are in common usage; these are discussed
                     40: only to the extent that they affect administration of 4.3BSD systems.
                     41: .LP
                     42: Revised August 24, 1986
                     43: .AE
                     44: .LP
                     45: .OH 'Installation and Operation of UUCP''SMM:9-%'
                     46: .EH 'SMM:9-%''Installation and Operation of UUCP'
                     47: .ne 5
                     48: .NH
                     49: \*(UU OVERVIEW
                     50: .PP
                     51: \*(Uu is a batch-type operation.
                     52: Users issue commands that are queued in a spool directory for processing
                     53: by background daemons.
                     54: .LP
                     55: \fIUucp\fP (UNIX-to-UNIX Copy) and \fIuux\fP (UNIX-to-UNIX Execution)
                     56: provide the user interface to \*(Uu.
                     57: .I Uucp
                     58: has syntax and semantics similar to the standard
                     59: .UX
                     60: utility \fIcp\fP(1), with the added ability to prefix filenames with
                     61: system names.
                     62: Similarly, \fIuux\fP mimics the conventions of \fIsh\fP(1), and allows
                     63: commands to be prefixed with system names.
                     64: .LP
                     65: \fIUucico\fP (Copy-In, Copy-Out) is the primary \*(Uu daemon.
                     66: It processes the requests queued by \fIuucp\fP and \fIuux\fP,
                     67: initiates calls to remote systems, transfers files, and forks other
                     68: daemons to execute \fIuux\fP-requested commands.
                     69: \fIUucico\fP also acts as the \*(Uu ``shell'' when remote systems call in
                     70: to requests transfers.
                     71: .LP
                     72: Three types of files are used in \*(Uu operation.
                     73: \fIControl files\fP describe the \*(Uu environment, including
                     74: known remote hosts, available devices, and remote file access permissions.
                     75: Control files are relatively static; they are generally changed only by the
                     76: system administrator.
                     77: \fISpool files\fP (also called \fIQueue files\fP) contain transfer requests
                     78: and data; they are created and deleted as necessary
                     79: by \fIuucp\fP, \fIuux\fP, and \fIuucico\fP.
                     80: \fILog files\fP accumulate a history of \*(Uu activity; these tend to
                     81: grow forever if not periodically cleaned up.
                     82: .LP
                     83: Spool files are further divided into three types:
                     84: \fIWork files\fP
                     85: contain directions for file transfers between systems.
                     86: Every invocation of \fIuucp\fP or \fIuux\fP creates one or more work files.
                     87: \fIData files\fP contain data for transfer to or from remote systems.
                     88: \fIExecution files\fP contain directions for
                     89: .UX
                     90: command executions which
                     91: involve the resources of one or more systems.
                     92: Execution files are created only by \fIuux\fP.
                     93: .\"===========================================================================
                     94: .\" SECTION 2: USER UTILITIES
                     95: .\"===========================================================================
                     96: .ne 5
                     97: .NH
                     98: USER UTILITIES
                     99: .PP
                    100: \*(Uu includes a total of ten ``primary'' utilities, that is, ten
                    101: utilities for general users.
                    102: All reside in the \fB/usr/bin\fP directory, where they are easily accessible.
                    103: This section provides detailed implementation descriptions for the more
                    104: important commands; see the corresponding \fIman\fP pages for additional
                    105: information.
                    106: .LP
                    107: The following two commands queue transfer requests:
                    108: .RS
                    109: .IP uucp(1C) 15
                    110: UNIX-to-UNIX File Copy.
                    111: One of more \fIcontrol files\fP are created, containing names of files to be
                    112: transferred.
                    113: When necessary, local files are copied into \fIdata files\fP for
                    114: transmission.
                    115: .IP uux(1C)
                    116: Execute command.
                    117: An \fIexecute file\fP is created, containing a
                    118: .UX
                    119: command to be executed and its arguments.
                    120: A \fIcontrol file\fP is created that includes all files that must be
                    121: transferred to execute the command, including the \fIexecute file\fP itself.
                    122: When necessary, local files are copied into \fIdata files\fP for
                    123: transmission.
                    124: Any output from the command will also be written to \fIdata files\fP.
                    125: .RE
                    126: .LP
                    127: The following four commands provide \*(Uu status information:
                    128: .RS
                    129: .IP uulog(1C) 15
                    130: Display selected information from the \*(Uu log.
                    131: .IP uuname(1C)
                    132: Display the names of all remote hosts that are directly accessible via \*(Uu.
                    133: .IP uusnap(8C)
                    134: Provide a snapshot of the current queue, including
                    135: the number of work files, data files, and execute files for each site.
                    136: .IP uuq(1C)
                    137: A variant of \fIuusnap\fP, lists files and \fIuux\fP commands
                    138: queued for each site.
                    139: \fIUuq\fP also permits the \*(Uu administrator to delete jobs.
                    140: .RE
                    141: .LP
                    142: The following four commands provide miscellaneous support services:
                    143: .RS
                    144: .IP uudecode(1C) 15
                    145: The decoder for files created by \fIuuencode\fP, below.
                    146: .IP uuencode(1C)
                    147: A filter to convert binary files into printable ASCII.
                    148: This is useful when transferring object files over communications links
                    149: that do not support 8-bit transfers.
                    150: .IP uupoll(8C)
                    151: A user utility to conveniently fork the \*(Uu daemon, \fIuucico\fP.
                    152: .IP uusend(1C)
                    153: A utility to send files to remote sites more than one ``hop'' distant.
                    154: .RE
                    155: .\"===========================================================================
                    156: .NH 2
                    157: Uucp - UNIX to UNIX File Copy
                    158: .LP
                    159: The \fIuucp\fP
                    160: command is the user's primary interface with the system.
                    161: The
                    162: .I uucp
                    163: command was designed to look like
                    164: .I cp
                    165: to the user.
                    166: The syntax is
                    167: .IP
                    168: .I uucp\ \ 
                    169: .B [
                    170: option
                    171: .B ]
                    172: \ ...\ \ source\ ...\ \ destination
                    173: .LP
                    174: where the source and destination
                    175: may contain the prefix \fIsystem-name\fP\fB!\fP
                    176: which indicates the system on which the file
                    177: or files reside
                    178: or where they will be copied.
                    179: .LP
                    180: The options interpreted by
                    181: .I uucp
                    182: are:
                    183: .RS
                    184: .IP \-f 10
                    185: Don't make directories when copying the file.
                    186: The default is to make the necessary directories.
                    187: .IP \-C
                    188: Copy source files to the spool directory.
                    189: The default is to use the specified source when the actual
                    190: transfer takes place.
                    191: .IP \-g\fIgrade\fR
                    192: Put
                    193: .I grade
                    194: in as the grade in the name of the work file.
                    195: This is a single character in the range \fB[0-9][A-Z][a-z]\fP.
                    196: The \fIgrade\fP will be used by \fIuucico\fP to establish the
                    197: priority of requests.
                    198: \fB0\fP is the highest (best) grade; \fBz\fP is the lowest (worst).
                    199: The default
                    200: .I grade
                    201: for
                    202: .I uucp
                    203: is \fBn\fP.
                    204: .IP \-m
                    205: Send mail on completion of the work.
                    206: .IP \-n\fIuser\fR
                    207: Notify \fIuser\fR on the destination system that a file was sent.
                    208: .LP
                    209: The following options are used primarily for debugging, or when
                    210: .I uucp
                    211: is invoked from other programs:
                    212: .IP \-r 10
                    213: Queue the job but do not start \fIuucico\fP.
                    214: The assumption is that \fIuucico\fP will be started at a later time, perhaps
                    215: by \fIcron\fP(8) or \fIuupoll\fP.
                    216: .IP \-s\fIdir\fR
                    217: Use directory
                    218: .I dir
                    219: for the top level spool directory.
                    220: .IP \-x\fInum\fR
                    221: .I Num
                    222: is the level of debugging output desired.
                    223: This option requires the user to have read permission to the \*(Uu
                    224: control file \fIL.sys\fP.
                    225: .RE
                    226: .LP
                    227: The destination may be a directory name,
                    228: in which case the file name is taken from the last part of the
                    229: source's name.
                    230: The source
                    231: name may contain special shell characters
                    232: such as ``\fB?*[]\fR'';
                    233: these and other shell characters such as ``\fB!<>\fP'' will need to be quoted
                    234: or escaped.
                    235: If a source argument has a
                    236: \fIsystem-name\fP\fB!\fP
                    237: prefix for a remote system,
                    238: the file name expansion will be done on the remote system.
                    239: .LP
                    240: The command
                    241: .IP "" 12
                    242: uucp\ \ *.c\ \ usg!/usr/dan
                    243: .LP
                    244: will set up the transfer of all files whose names end with ``.c''
                    245: to the ``/usr/dan'' directory on the ``usg'' machine.
                    246: .LP
                    247: The source and/or destination names may also contain a \fB~\fP\fIuser\fP
                    248: prefix.
                    249: This translates to the login directory on
                    250: the specified system.
                    251: A lone \fB~\fP prefix is expanded to the name of the specified system's
                    252: public access directory, usually 
                    253: \fB/usr/spool/uucppublic\fP.
                    254: For names with partial path-names,
                    255: the current directory is prepended to the file name.
                    256: File names with
                    257: .I ../
                    258: are not permitted.
                    259: .LP
                    260: The command
                    261: .IP "" 12
                    262: uucp\ \ usg!~dan/*.h\ \ ~dan
                    263: .LP
                    264: will set up the transfer of files whose names end with ``.h''
                    265: in dan's login
                    266: directory on system ``usg'' to dan's local
                    267: login directory.
                    268: .LP
                    269: For each source file,
                    270: the program will check the source and destination
                    271: file-names
                    272: and the system-part of each to
                    273: classify the work into one of five types:
                    274: .RS
                    275: .IP [1]
                    276: Copy source to destination on local system.
                    277: .IP [2]
                    278: Receive files from a remote system.
                    279: .IP [3]
                    280: Send files to a remote system.
                    281: .IP [4]
                    282: Send files from remote system
                    283: to another remote system.
                    284: .IP [5]
                    285: Receive files from remote system when the source pathname
                    286: contains special shell characters as
                    287: mentioned above.
                    288: .RE
                    289: .LP
                    290: After the work has been set up in the spool directories,
                    291: the \*(Uu daemon \fIuucico\fP is started to try to contact the other
                    292: machine to execute the work (unless the \-r option
                    293: was specified).
                    294: .SH
                    295: Type 1
                    296: .LP
                    297: .I Uucp
                    298: makes a copy of the file.
                    299: The
                    300: .I \-m
                    301: option is not honored in this case.
                    302: .SH
                    303: Type 2
                    304: .LP
                    305: A one line
                    306: .I "work file"
                    307: is created for each file requested and put in the \fBC.\fP spool directory
                    308: with the following fields, each separated by a blank.
                    309: (All
                    310: .I "work files"
                    311: and
                    312: .I "execute files"
                    313: use a blank as the field separator.)
                    314: .RS
                    315: .IP [1]
                    316: R
                    317: .IP [2]
                    318: The full path-name of the source or a ~user/path-name.
                    319: The
                    320: .I ~user
                    321: part will be expanded on the remote system.
                    322: .IP [3]
                    323: The full path-name of the local destination file.
                    324: If the
                    325: .I ~user
                    326: notation is used, it will be immediately
                    327: expanded to be the login directory for the user.
                    328: .IP [4]
                    329: The user's login name.
                    330: .IP [5]
                    331: A `\-' followed by an option list.
                    332: .RE
                    333: .KS
                    334: .SH
                    335: Type 3
                    336: .LP
                    337: For each source file, a
                    338: .I "work file"
                    339: is created.
                    340: A \fB\-C\fP option on the
                    341: .I uucp
                    342: command will cause the
                    343: .I "data file"
                    344: to be copied into the spool directory
                    345: and the file to be transmitted from
                    346: the copy; the copy is deleted when the transfer completes.
                    347: The fields of each entry are given below.
                    348: .RS
                    349: .IP [1]
                    350: S
                    351: .IP [2]
                    352: The full-path name of the source file.
                    353: .IP [3]
                    354: The full-path name of the destination or
                    355: ~user/file-name.
                    356: .IP [4]
                    357: The user's login name.
                    358: .IP [5]
                    359: A `\-' followed by an option list.
                    360: .IP [6]
                    361: The full path-name of the local source file.
                    362: If the
                    363: .I ~user
                    364: notation is used, it will be immediately
                    365: expanded to be the login directory for the user.
                    366: If the \fB\-C\fP option was used, this will be the name of a
                    367: .I "data file"
                    368: in the spool directory.
                    369: .IP [7]
                    370: The file mode bits of the source file
                    371: in octal print format
                    372: (e.g. 0666).
                    373: .IP [8]
                    374: The user to notify on the remote system that the transfer has completed.
                    375: .RE
                    376: .KE
                    377: .SH
                    378: Type 4 and Type 5
                    379: .LP
                    380: .I Uucp
                    381: generates a
                    382: .I uucp
                    383: command and sends it to the remote machine;
                    384: the remote
                    385: .I uucico
                    386: executes the
                    387: .I uucp
                    388: command.
                    389: .\"===========================================================================
                    390: .NH 2
                    391: Uux - UNIX To UNIX Execution
                    392: .LP
                    393: The \fIuux\fP
                    394: command is used to set up the execution of a
                    395: .UX
                    396: command
                    397: where the execution machine and/or some of the
                    398: files are remote.
                    399: The syntax of the uux command is
                    400: .IP
                    401: .I uux\ \ 
                    402: .B [
                    403: \-
                    404: .B "] ["
                    405: option
                    406: .B ]
                    407: \ ...\ \ command-string
                    408: .LP
                    409: where the command-string is made up of one or more arguments.
                    410: All special shell characters such as ``<>|*?!'' must be quoted
                    411: either by quoting the entire command-string
                    412: or quoting the character as a separate argument.
                    413: Within the command-string, the command and file names may
                    414: contain a
                    415: \fIsystem-name\fP\fB!\fP
                    416: prefix.
                    417: All arguments which do not contain a ``!'' will not
                    418: be treated as files.
                    419: (They will not be copied to the execution machine.)
                    420: The `\-' is used to indicate that the standard input
                    421: for
                    422: .I command-string
                    423: should be inherited from the standard input
                    424: of the
                    425: .I uux
                    426: command.
                    427: .LP
                    428: The options, used mostly for debugging and by other programs, are:
                    429: .RS
                    430: .IP \-a\fIname\fP 10
                    431: Use \fIname\fP as the requestor of the \fIuux\fP command, instead of the
                    432: real system and login names.
                    433: Unlike most other \*(Uu arguments, \fIname\fP may consist of a chain of
                    434: system names separated by `!' characters, as in:
                    435: .IP \  15
                    436: uux\ \ \-\ \ \-r\ \ \-aihnp4!decwrl!pyramid!csg\ \ seismo!rmail\ \ rick
                    437: .IP \-C 10
                    438: Copy source files to the spool directory.
                    439: Same as for \fIuucp\fP.
                    440: .IP \-g\fIgrade\fR
                    441: Put
                    442: .I grade
                    443: in as the grade in the name of the work file.
                    444: Same as for \fIuucp\fP.
                    445: The default
                    446: .I grade
                    447: for
                    448: .I uux
                    449: is \fBA\fP.
                    450: .IP \-n
                    451: Do not mail an acknowledgement to the requestor of the command.
                    452: Normally the execution daemon, \fIuuxqt\fP, will mail a message
                    453: to the user who entered the \fIuux\fP command.
                    454: This message includes the status return value that the program exited with.
                    455: The \fB\-n\fP option requests that this message not be sent.
                    456: .IP \-r
                    457: Do not start the \*(Uucp daemons \fIuucico\fP(8C) or \fIuuxqt\fP(8C)
                    458: after queuing the job.
                    459: .IP \-x\fInum\fR
                    460: Num is the level of debugging output desired.
                    461: .IP \-z
                    462: Mail an acknowledgement to the requestor only if the command fails, that
                    463: is, the command exits with a non-zero status.
                    464: .RE
                    465: .LP
                    466: The command
                    467: .IP "" 12
                    468: pr\ \ abc\ \ |\ \ uux\ \ \-\ \ usg!lpr
                    469: .LP
                    470: will set up the output of ``pr abc''
                    471: as standard input to an lpr command
                    472: to be executed on system ``usg''.
                    473: .LP
                    474: .I Uux
                    475: generates an
                    476: .I "execute file"
                    477: which contains the
                    478: names of the files required
                    479: for execution (including standard input),
                    480: the user's login name, the destination
                    481: of the standard output, and the command to be executed.
                    482: This file is either put in the \fBX.\fP spool directory
                    483: for local execution,
                    484: or in the \fBD.\fP\fIhostname\fP\fBX\fP directory
                    485: for transfer to the remote system.
                    486: .LP
                    487: For required files which are not on the execution machine,
                    488: .I uux
                    489: will generate receive command files (type 2 above).
                    490: These command-files will be put on the execution machine and
                    491: executed by 
                    492: \fIuucico\fP.
                    493: (This will work only if the local system has permission
                    494: to put files in the remote spool directory as controlled
                    495: by the remote
                    496: \fIUSERFILE\fP.)
                    497: .LP
                    498: The
                    499: .I "execute file"
                    500: will be processed
                    501: by the
                    502: \fIuuxqt\fP(8C)
                    503: program on the execution machine.
                    504: It is made up of several lines,
                    505: each of which contains an identification character
                    506: and one or more arguments.
                    507: The order of the lines in the file is not relevant
                    508: and some of the lines may not be present.
                    509: Each line is described below.
                    510: .RS
                    511: .SH
                    512: User Line
                    513: .IP
                    514: U\ \ user\ \ system
                    515: .LP
                    516: where the
                    517: .I user
                    518: and
                    519: .I system
                    520: are the requestor's login name and system.
                    521: .SH
                    522: Required File Line
                    523: .IP
                    524: F file-name real-name
                    525: .LP
                    526: where the
                    527: .I file-name
                    528: is the generated name of a file for the execute machine
                    529: and
                    530: .I real-name
                    531: is the last part of the actual file name (contains no
                    532: path information).
                    533: Zero or more of these lines may be present in the
                    534: .I "execute file" .
                    535: The
                    536: .I uuxqt
                    537: program will check for the existence of all required
                    538: files before the command is executed.
                    539: .SH
                    540: Standard Input Line
                    541: .IP
                    542: I\ \ file-name
                    543: .LP
                    544: The standard input is either specified by a `<' in the
                    545: command-string or inherited from the standard input of the
                    546: .I uux
                    547: command if the `\-' option is used.
                    548: If a standard input is not specified,
                    549: .B /dev/null
                    550: is used.
                    551: .SH
                    552: Standard Output Line
                    553: .IP
                    554: O\ \ file-name\ \ system-name
                    555: .LP
                    556: The standard output is specified by a `>' within the
                    557: command-string.
                    558: If a standard output is not specified,
                    559: .B /dev/null
                    560: is used.
                    561: (Note \- the use of ``>>'' is not implemented.)
                    562: .SH
                    563: Status Return Line
                    564: .IP
                    565: N
                    566: .LP
                    567: Normally \fIuuxqt\fP mails an acknowledgement message to the
                    568: requestor after the command completes.
                    569: The message includes the status return value that the program exited with.
                    570: This line inhibits mailing of the acknowledgement message.
                    571: It is generated by the \fB-n\fP option of \fIuux\fP;
                    572: it is also quietly assumed by \fIuuxqt\fP on the command \fBrmail\fP.
                    573: .SH
                    574: Error Status Return Line
                    575: .IP
                    576: Z
                    577: .LP
                    578: A variant of the \fIStatus Return\fP line, this line indicates that
                    579: an acknowledgement should be mailed only if the command's status
                    580: return is non-zero, i.e., the program exited with an error.
                    581: This line is generated by the \fB-z\fP option of \fIuux\fP.
                    582: It is also quietly assumed by \fIuuxqt\fP on the command \fBrnews\fP.
                    583: If both the \fBZ\fP and \fBN\fP lines appear, the \fBZ\fP line has
                    584: precedence.
                    585: .SH
                    586: Requestor Line
                    587: .IP
                    588: R\ \ requestor
                    589: .LP
                    590: where
                    591: .I requestor
                    592: is a complete return mailing address to the original requestor.
                    593: This line is generated by the \fB-a\fP option of \fIuux\fP, and is used
                    594: to override the mail return address implied by the \fIUser\fP line.
                    595: This is commonly used by mailers and programs like \fIuusend\fP that
                    596: know how to ``hop'' a file from system to system.
                    597: .SH
                    598: Command Line
                    599: .IP
                    600: C\ \ command\ \ 
                    601: .B [
                    602: arguments
                    603: .B ]
                    604: \ ...
                    605: .LP
                    606: The arguments are those specified in the command-string.
                    607: The standard input and standard output will not appear on this
                    608: line.
                    609: All
                    610: .I "required files"
                    611: will be moved to the execution directory (a subdirectory
                    612: of the spool directory)
                    613: and the
                    614: .UX
                    615: command is executed using the Shell specified in the
                    616: .I uucp.h
                    617: header file (usually \fI/bin/sh\fP).
                    618: In addition, a shell ``PATH'' statement is prepended
                    619: to the command line.
                    620: .LP
                    621: After execution, the temporary standard output file is copied to
                    622: or set up to be
                    623: sent to the proper place.
                    624: .RE
                    625: .\"===========================================================================
                    626: .\" SECTION 3: SYSTEM UTILITIES
                    627: .\"===========================================================================
                    628: .ne 5
                    629: .NH
                    630: SYSTEM AND ADMINISTRATIVE UTILITIES
                    631: .LP
                    632: \*(Uu includes four system utilities;
                    633: these are not normally referenced by users.
                    634: All except \fIuucpd\fP reside in the \*(Uu administrative directory,
                    635: \fB/usr/lib/uucp\fP.
                    636: These include:
                    637: .RS
                    638: .IP uucico(8C) 15
                    639: Copy In, Copy Out. This is the primary \*(Uu daemon.
                    640: .IP uuclean(8C)
                    641: A handy utility to clean up the \*(Uu spool directories.
                    642: .IP uucpd
                    643: The \*(Uu TCP/IP daemon.
                    644: This daemon ``answers'' the connection request from a remote \fIuucico\fP
                    645: to a TCP/IP socket.
                    646: It is functionally a stripped-down version of \fIrlogind\fP(8) that provides
                    647: full 8-bit communication.
                    648: (Note: this utility does not have a \fIman\fP page.)
                    649: .IP uuxqt(8C)
                    650: Execution Daemon.
                    651: This is forked by \fIuucico\fP to interpret execution files
                    652: transferred from a remote system.
                    653: .RE
                    654: .\"===========================================================================
                    655: .NH 2
                    656: Uucico - Copy In, Copy Out (\*(Uu Daemon)
                    657: .LP
                    658: .I Uucico
                    659: is the ``heart'' of the \*(Uu system.
                    660: The program performs the following major functions:
                    661: .RS
                    662: .IP -\ \  3
                    663: Scan the spool directory for work.
                    664: .IP -\ \  
                    665: Place a call to a remote system.
                    666: .IP -\ \ 
                    667: Negotiate a line protocol to be used.
                    668: .IP -\ \ 
                    669: Execute all requests from both systems.
                    670: .IP -\ \ 
                    671: Log work requests and work completions.
                    672: .RE
                    673: .LP
                    674: .I Uucico
                    675: may be started in several ways;
                    676: .RS
                    677: .IP a) 5
                    678: by a system daemon (such as \fIcron\fP(8)),
                    679: .IP b)
                    680: by one of the
                    681: .I
                    682: uucp, uux, uuxqt
                    683: .R
                    684: or
                    685: .I uupoll
                    686: programs,
                    687: .IP c)
                    688: directly by the user (this is usually for testing),
                    689: .IP d)
                    690: by a remote system.
                    691: (The \fIuucico\fP program should be specified as the ``shell''
                    692: field in the \fB/etc/passwd\fP file for the \*(Uu logins.)
                    693: .RE
                    694: .LP
                    695: When started by method a, b or c, the program is considered to
                    696: be in
                    697: .I MASTER
                    698: mode.
                    699: In this mode, a connection will be made to a remote system.
                    700: If started by a remote system (method d),
                    701: the program is considered to be in
                    702: .I SLAVE
                    703: mode.
                    704: .LP
                    705: The
                    706: .I MASTER
                    707: mode will operate in one of two ways.
                    708: If no system name is specified
                    709: (\-s option not specified)
                    710: the program will scan the spool directory for
                    711: systems to call.
                    712: If a system name is specified, that system will be called,
                    713: and work will only be done for that system.
                    714: .LP
                    715: The
                    716: .I uucico
                    717: program is generally started by another program.
                    718: There are several options used for execution:
                    719: .RS
                    720: .IP \-g\fIgrade\fP 10
                    721: Set the minimum grade of this \fIuucico\fP run to \fIgrade\fP.
                    722: Only files of this grade or better will be transferred.
                    723: .IP \-r1
                    724: Start the program in
                    725: .I MASTER
                    726: mode.
                    727: This is used when
                    728: .I uucico
                    729: is started by a program or \fIcron\fP shell.
                    730: .IP \-s\fIsys\fR
                    731: Do work only for system
                    732: .I sys.
                    733: If
                    734: .B \-s
                    735: is specified,
                    736: a call to the specified system
                    737: will be made even if there is no work for system
                    738: .I sys
                    739: in the spool directory.
                    740: This is useful for polling systems which do not have
                    741: the hardware to initiate a connection.
                    742: .LP
                    743: The following options are used primarily for debugging:
                    744: .IP \-d\fIdir\fR
                    745: Use directory
                    746: .I dir
                    747: for the top level spool directory.
                    748: .IP \-x\fInum\fR
                    749: .I Num
                    750: is the level of debugging output desired.
                    751: .RE
                    752: .LP
                    753: The next part of this section will describe the major steps within
                    754: the
                    755: .I uucico
                    756: program.
                    757: .SH
                    758: Scan For Work
                    759: .LP
                    760: The names of the work related files in a spool subdirectory have format
                    761: .IP
                    762: type \fB.\fP system-name grade number
                    763: .LP
                    764: where:
                    765: .IP
                    766: .I Type
                    767: is an upper case letter,
                    768: (
                    769: .B C
                    770: -\ work (copy command) file,
                    771: .B D
                    772: -\ data file,
                    773: .B X
                    774: -\ execute file);
                    775: .IP
                    776: .I System-name
                    777: is the remote system;
                    778: .IP
                    779: .I Grade
                    780: is a character in the range \fB[0-9][A-Z][a-z]\fP;
                    781: .IP
                    782: .I Number
                    783: is a four digit, padded sequence number.
                    784: .LP
                    785: The file
                    786: .IP "" 12
                    787: C.res45n0031
                    788: .LP
                    789: would be a
                    790: .I "work file"
                    791: for a file transfer between the local
                    792: machine and the ``res45'' machine.
                    793: .LP
                    794: The scan for work is done by looking through the
                    795: appropriate spool directory for
                    796: \fIwork files\fP
                    797: (files with prefix \fBC.\fP).
                    798: A list is made of all systems to be called.
                    799: .I Uucico
                    800: will then call each system and process all
                    801: .I "work files" .
                    802: .SH
                    803: Call Remote System
                    804: .LP
                    805: The call is made using information from the \fIcontrol\fP files
                    806: that reside in the \fB/usr/lib/uucp\fP directory.
                    807: At the start of the call process, a lock is
                    808: set to forbid multiple conversations 
                    809: between the same two systems.
                    810: .LP
                    811: The system name is found in the
                    812: .I L.sys
                    813: control file.
                    814: The information contained for each system is;
                    815: .RS
                    816: .IP [1]
                    817: system name,
                    818: .IP [2]
                    819: times to call the system
                    820: (days-of-week and times-of-day),
                    821: .IP [3]
                    822: the \fIcaller\fP, that is, the type of device to be used for the call,
                    823: .IP [4]
                    824: the line speed or network number (as appropriate),
                    825: .IP [5]
                    826: telephone number or device name (as appropriate),
                    827: .IP [6]
                    828: login information (multiple fields).
                    829: .RE
                    830: .LP
                    831: The time field is checked against the present time to see
                    832: if the call should be made.
                    833: .LP
                    834: The
                    835: .I
                    836: phone number
                    837: .R
                    838: may contain abbreviations (e.g. mh, py, boston) which get translated into dial
                    839: sequences using the
                    840: .I L-dialcodes
                    841: file.
                    842: .LP
                    843: The
                    844: .I L-devices
                    845: file is scanned using fields [3] and [4] from the
                    846: .I L.sys
                    847: file to find an available device for the call.
                    848: The program will try all devices which satisfy
                    849: [3] and [4] until the call is made or no more
                    850: devices can be tried.
                    851: If a device is successfully opened, a lock file
                    852: is created so that another copy of
                    853: .I uucico
                    854: will not try to use it.
                    855: If the call is complete, the
                    856: .I
                    857: login information
                    858: .R
                    859: (field [6] of
                    860: \fIL.sys\fP)
                    861: is used to login.
                    862: .LP
                    863: The conversation between the two
                    864: .I uucico
                    865: programs begins with a handshake started by the called,
                    866: .I SLAVE ,
                    867: system.
                    868: The
                    869: .I SLAVE
                    870: sends a message to let the
                    871: .I MASTER
                    872: know it is ready to receive the system
                    873: identification and conversation sequence number.
                    874: The response from the
                    875: .I MASTER
                    876: is
                    877: verified by the
                    878: .I SLAVE
                    879: and if acceptable, protocol selection begins.
                    880: The
                    881: .I SLAVE
                    882: can also reply with a ``call-back required''
                    883: message in which case, the current conversation
                    884: is terminated.
                    885: .SH
                    886: Line Protocol Selection
                    887: .LP
                    888: The remote system sends a message
                    889: .IP "" 12
                    890: P\fIproto-list\fR
                    891: .LP
                    892: where proto-list is a string of characters, each
                    893: representing a line protocol.
                    894: .LP
                    895: The calling program checks the proto-list
                    896: for a letter corresponding to an available line
                    897: protocol and returns a
                    898: .I use-protocol
                    899: message.
                    900: The
                    901: .I use-protocol
                    902: message is
                    903: .IP "" 12
                    904: U\fIcode\fR
                    905: .LP
                    906: where 
                    907: .I code
                    908: is either a one character
                    909: protocol letter or
                    910: .B N
                    911: which means there is no common protocol.
                    912: .LP
                    913: The following protocols are implemented in 4.3BSD \*(Uu:
                    914: .RS
                    915: .IP \fBg\fP
                    916: General.
                    917: Default for dialup or hardwired lines, supported by all versions of \*(Uu.
                    918: This protocol employs small (64 byte) data packets with
                    919: checksums and packet-by-packet retransmission.
                    920: This ensures reliable and efficient transfers over slow and noisy links
                    921: like 1200-baud dial-up lines.
                    922: These same characteristics make the \fBg\fP protocol bulky and slow over
                    923: error free links, and very expensive on public data-switched networks.
                    924: .IP \fBf\fP
                    925: Optimized for use on X.25 PAD public data-switched networks.
                    926: The protocol employs larger (256 byte) data packets,
                    927: passes no control characters except CR,
                    928: and uses only a 7-bit data path.
                    929: (Note that the files transferred may still contain full 8-bit data.)
                    930: It assumes that the link is ``mostly'' error-free, calculating a checksum
                    931: for the entire file only. 
                    932: When an error is detected, the entire file is retransmitted.
                    933: .IP \fBt\fP
                    934: Optimized for use on TCP/IP networks and other completely error free links.
                    935: It employs large (1024 byte) packets, and uses the full 8-bit data path.
                    936: .RE
                    937: .LP
                    938: Note: AT&T System VR2 \*(UU supports the \fBx\fP (\fIX.25\fP) and \fBe\fP
                    939: (\fIError Free\fP) protocols, which provide functionality similar to the
                    940: 4.3BSD \fBf\fP and \fBt\fP protocols, respectively. 
                    941: They are incompatible, however.
                    942: Thus when attempting to connect two systems via X.25 or an local area network,
                    943: it is not adequate for both systems to simply ``support X.25'' or ``support
                    944: error free transfers.''
                    945: Both must support the same \*(Uu protocols.
                    946: .SH
                    947: Work Processing
                    948: .LP
                    949: The initial roles (
                    950: .I MASTER
                    951: or
                    952: .I SLAVE
                    953: ) for the work processing are
                    954: the mode in which each program starts.
                    955: (The 
                    956: .I MASTER
                    957: has been specified by the \fB\-r1\fP \fIuucico\fP option.)
                    958: The
                    959: .I MASTER
                    960: program does a work search similar to the
                    961: one used in the ``Scan For Work'' section.
                    962: .LP
                    963: There are five messages used during the
                    964: work processing, each specified by the first
                    965: character of the message.
                    966: They are;
                    967: .IP "" 12
                    968: .RS
                    969: .IP S 3
                    970: send a file,
                    971: .IP R
                    972: receive a file,
                    973: .IP C
                    974: copy complete,
                    975: .IP X
                    976: execute a
                    977: .I uucp
                    978: command, and
                    979: .IP H
                    980: hangup.
                    981: .RE
                    982: .LP
                    983: The
                    984: .I MASTER
                    985: will send
                    986: .I R ,
                    987: .I S
                    988: or
                    989: .I X
                    990: messages until all work from the spool directory is
                    991: complete, at which point an
                    992: .I H
                    993: message will be sent.
                    994: The
                    995: .I SLAVE
                    996: will reply with
                    997: \fISY\fR, \fISN\fR, \fIRY\fR, \fIRN\fR, \fIHY\fR, \fIHN\fR,
                    998: \fIXY\fR, \fIXN\fR,
                    999: corresponding to
                   1000: .I yes
                   1001: or
                   1002: .I no
                   1003: for each request.
                   1004: .LP
                   1005: The send and receive replies are
                   1006: based on permission to access the
                   1007: requested file/directory using
                   1008: .I USERFILE
                   1009: and read/write permissions of the file/directory.
                   1010: After each file is copied into the spool directory
                   1011: of the receiving system,
                   1012: a copy-complete message is sent by the receiver of the file.
                   1013: The message
                   1014: .I CY
                   1015: will be sent if the
                   1016: file has successfully been moved from the
                   1017: temporary spool file to the actual destination.
                   1018: Otherwise, a
                   1019: .I CN
                   1020: message is sent.
                   1021: (In the case of
                   1022: .I CN ,
                   1023: the transferred file will be in the \fBTM.\fP spool subdirectory.)
                   1024: The requests and results are logged on both systems.
                   1025: .LP
                   1026: The hangup response is determined by the
                   1027: .I SLAVE
                   1028: program by a work scan of its spool directory.
                   1029: If work for the \fIMASTER\fP\|'s system exists in the
                   1030: \fISLAVE\fP\|'s
                   1031: spool directory, an
                   1032: .I HN
                   1033: message is sent and the programs switch roles.
                   1034: If no work exists, an
                   1035: .I HY
                   1036: response is sent.
                   1037: .SH
                   1038: Conversation Termination
                   1039: .LP
                   1040: When a
                   1041: .I HY
                   1042: message is received by the
                   1043: .I MASTER
                   1044: it is echoed back to the
                   1045: .I SLAVE
                   1046: and the protocols are turned off.
                   1047: Each program sends a final ``OO'' message to the
                   1048: other.
                   1049: The original
                   1050: .I SLAVE
                   1051: program will clean up and terminate.
                   1052: The
                   1053: .I MASTER
                   1054: will proceed to call other systems
                   1055: and process work as long as possible
                   1056: or terminate if a
                   1057: .B \-s
                   1058: option was specified.
                   1059: .LP
                   1060: .\"===========================================================================
                   1061: .NH 2
                   1062: Uuxqt - Uucp Command Execution
                   1063: .LP
                   1064: The
                   1065: .I uuxqt
                   1066: program is used to execute
                   1067: .I
                   1068: execute files
                   1069: .R
                   1070: generated by
                   1071: .I uux.
                   1072: The
                   1073: .I uuxqt
                   1074: program may be started by either the
                   1075: .I uucico
                   1076: or
                   1077: .I uux
                   1078: programs.
                   1079: The program scans the \fBX.\fP spool directory for
                   1080: \fIexecute files\fP.
                   1081: Each one is checked to see if all the required files are available and
                   1082: if so, the command line or send line is executed.
                   1083: .LP
                   1084: The
                   1085: .I
                   1086: execute file
                   1087: .R
                   1088: is described in the
                   1089: .I uux
                   1090: section above.
                   1091: .SH
                   1092: Command Execution
                   1093: .LP
                   1094: The execution is accomplished by executing a
                   1095: .I
                   1096: sh \-c
                   1097: .R
                   1098: of the command line after appropriate
                   1099: standard input and standard output have been opened.
                   1100: If a standard output is specified, the program
                   1101: will create a send command or copy the output
                   1102: file as appropriate.
                   1103: .\"===========================================================================
                   1104: .NH 2
                   1105: Uuclean - Uucp Spool Directory Cleanup
                   1106: .LP
                   1107: This program is typically started by the
                   1108: \fIcron\fP(8)
                   1109: daemon, once a day.
                   1110: Its function is to remove files from the spool directories which
                   1111: are more than 3 days old.
                   1112: These are usually files for work which can not be completed.
                   1113: .LP
                   1114: .LP
                   1115: The options available are:
                   1116: .RS
                   1117: .IP \-d\fIdir\fR 10
                   1118: The directory to be scanned is
                   1119: .I dir .
                   1120: .IP \-m
                   1121: Send mail to the owner of each file being removed.
                   1122: (Note that most files put into the spool directory
                   1123: will be owned by the owner of the
                   1124: uucp programs since the setuid bit will be set on these
                   1125: programs.
                   1126: The mail will therefore most often go to the owner
                   1127: of the uucp programs.)
                   1128: .IP \-n\fIhours\fR
                   1129: Change the aging time from 72 hours to
                   1130: .I hours
                   1131: hours.
                   1132: .IP \-p\fIpre\fR
                   1133: Examine files with prefix
                   1134: .I pre
                   1135: for deletion.
                   1136: (Up to 10 file prefixes may be specified.)
                   1137: .IP \-x\fInum\fR
                   1138: This is the level of debugging output desired.
                   1139: .RE
                   1140: .\"===========================================================================
                   1141: .\" SECTION 4: CONTROL FILES
                   1142: .\"===========================================================================
                   1143: .ne 5
                   1144: .NH
                   1145: SYSTEM CONTROL FILES
                   1146: .PP
                   1147: Seven \fIControl Files\fP are referenced by the \*(Uu utilities.
                   1148: All live in the \*(Uu administrative directory, \fB/usr/lib/uucp\fP.
                   1149: These are ASCII files, and can be modified using standard text editors such
                   1150: as \fIvi\fP and \fIex\fP.
                   1151: Lines beginning with a `#' character are comments;
                   1152: lines ending with a `\e' are continued on the next input line.
                   1153: .RS
                   1154: .IP L-devices(5) 15
                   1155: Declares all devices that are available to \fIuucico\fP for calling out.
                   1156: .IP L-dialcodes(5)
                   1157: Phone number prefixes.
                   1158: Used to map alphabetic prefixes on phone numbers from \fIL.sys\fP to
                   1159: real phone numbers.
                   1160: Also useful to keep a phone number database outside of \fIL.sys\fP.
                   1161: .IP L.sys(5)
                   1162: Systems.
                   1163: Declares all ``adjacent'' \*(Uu hosts, with directions on how to reach them.
                   1164: .IP L.aliases(5)
                   1165: Contains aliases used to map obsolete or truncated host names to the
                   1166: correct names.
                   1167: .IP L.cmds(5)
                   1168: Commands Permissions.
                   1169: Declares those commands for which remote \fIuux\fP execution is permitted.
                   1170: .IP SQFILE
                   1171: Sequence-number check file. (Optional)
                   1172: .IP USERFILE(5)
                   1173: Directory Tree Permissions.
                   1174: Specifies the set of directory trees that a particular user or host may
                   1175: reference.
                   1176: .RE
                   1177: .LP
                   1178: A general description of each file follows; see the \fIman\fP pages for
                   1179: complete information.
                   1180: Examples of the six standard files are included in the distribution in the
                   1181: \fB/usr/lib/uucp/UUAIDS\fP directory.
                   1182: .NH 2
                   1183: L-devices \- \*(UU Devices File
                   1184: .LP
                   1185: This file declares all devices that are available to
                   1186: \fIuucico\fP
                   1187: for calling out.
                   1188: The special device files are assumed to be in the
                   1189: .I /dev
                   1190: directory.
                   1191: The format for each entry is
                   1192: .IP "" 12
                   1193: caller  line  call-unit  class  dialer  [chat....]
                   1194: .LP
                   1195: where;
                   1196: .RS
                   1197: .IP caller 12
                   1198: is the caller mechanism, that is, the type of device to be used.
                   1199: This can be one of  \fBACU\fP (for Automatic
                   1200: Call Units (modem)), \fBDIR\fP (direct hardwired), \fBPAD\fP
                   1201: (X.25/PAD), and others.
                   1202: .IP line
                   1203: is the device for the link.
                   1204: For example, \fBcul0\fP for a modem, \fBtty10\fP for a hardwired line.
                   1205: .IP call-unit
                   1206: is the automatic call unit associated with
                   1207: \fIdevice\fP.
                   1208: This is used on autodialers such as the Racal-Vadic MACS and the
                   1209: DEC DN-11 that use one device for data, and a second device for dialing.
                   1210: If unused, this field must contain a placeholder such as ``unused'' or ``0''.
                   1211: Some modems use this field to specify tone or pulse dialing.
                   1212: .IP class
                   1213: is the line speed, plus an optional alphabetic prefix.
                   1214: The prefix can be used to distinguish among different devices that
                   1215: have identical \fIcaller\fP and line speed.
                   1216: .IP dialer
                   1217: applies to \fBACU\fP devices only;
                   1218: this is the type or brand name of the modem.
                   1219: Supported modems include \fBDN11\fP (DEC DN-11),
                   1220: \fBhayes\fP (Hayes Smartmodem),
                   1221: \fBvadic\fP (Racal-Vadic 3451),
                   1222: \fBventel\fP (VenTel 212A), and others.
                   1223: .IP chat
                   1224: refers to an \fIexpect/send\fP script, similar to that provided in
                   1225: \fIL.sys\fP.
                   1226: The difference is that the script in
                   1227: .I L-devices
                   1228: is executed before the connection is established, while the script in
                   1229: .I L.sys
                   1230: is executed afterwards.
                   1231: .RE
                   1232: .LP
                   1233: The line
                   1234: .IP "" 12
                   1235: ACU\ \ tty47\ \ unused\ \ 1200\ \ hayes
                   1236: .LP
                   1237: would be set up for a system which
                   1238: had device tty47 wired to a 
                   1239: Hayes ``Smartmodem 1200''
                   1240: for use at 1200 baud.
                   1241: .NH 2
                   1242: L-dialcodes \- Phone Number Prefix File
                   1243: .LP
                   1244: This file contains entries with location abbreviations used
                   1245: in the
                   1246: .I L.sys
                   1247: file (e.g. py, mh, boston).
                   1248: The entry format is
                   1249: .IP "" 12
                   1250: abb\ \ dial-seq
                   1251: .LP
                   1252: where;
                   1253: .RS
                   1254: .IP abb 12
                   1255: is the abbreviation,
                   1256: .IP dial-seq
                   1257: is the dial sequence to call that location.
                   1258: .RE
                   1259: .LP
                   1260: The line
                   1261: .IP "" 12
                   1262: py\ \ 165\-
                   1263: .LP
                   1264: would be set up so that entry py7777 would
                   1265: send 165\-7777 to the dial-unit.
                   1266: .NH 2
                   1267: L.aliases \- Hostname Aliases File
                   1268: .LP
                   1269: This file defines mapping (aliasing) of remote host names.
                   1270: This is intended for compensating for systems that have
                   1271: changed names, or do not provide their entire machine name
                   1272: (like most USG systems).
                   1273: It is also useful when a machine's name is not obvious or commonly misspelled.
                   1274: .LP
                   1275: Each line is of the form
                   1276: .IP
                   1277: real-name\ \ alias-name
                   1278: .LP
                   1279: where
                   1280: .I real-name
                   1281: is the full, correct name for the host, and
                   1282: .I alias-name
                   1283: is the old or truncated name.
                   1284: .NH 2
                   1285: L.sys \- \*(Uu Systems File
                   1286: .LP
                   1287: Each entry in this file represents one system
                   1288: which can be called by the local uucp programs.
                   1289: The format for each entry is
                   1290: .IP
                   1291: system  times  caller  class  device/phone-number  [login]
                   1292: .LP
                   1293: where;
                   1294: .RS
                   1295: .IP "system" 12
                   1296: is the hostname of the remote system.
                   1297: .IP times
                   1298: is a keyword-encoded string that indicates the days-of-the-week
                   1299: and times-of-day when the system may
                   1300: be called.
                   1301: For example \fBMoTuTh0800\-1730\fP would denote Monday, Tuesday,
                   1302: and Thursday, between 8 a.m. and 5:30p.m.
                   1303: .IP
                   1304: The day portion may be a list containing
                   1305: any of
                   1306: \fBSu\fP, \fBMo\fP, \fBTu\fP, \fBWe\fP, \fBTh\fP, \fBFr\fP, \fBSa\fP,
                   1307: or 
                   1308: .B Wk
                   1309: for any week-day or
                   1310: .B Any
                   1311: for any day.
                   1312: .IP
                   1313: The time should be a range of times (as in \fB0800\-1230\fP).
                   1314: If no time portion is specified, any time
                   1315: of day is assumed to be acceptable for the call.
                   1316: .IP caller
                   1317: is one of the caller device-types listed in \fIL-devices\fP.
                   1318: .IP class
                   1319: is the line speed for the call (e.g., 300, 1200, 9600),
                   1320: plus an optional alphabetic prefix.
                   1321: Network devices use this field for the network port number.
                   1322: .IP phone
                   1323: is the the phone number to call (for \fBACU\fP devices) or the
                   1324: device filename. 
                   1325: A phone number is made up of an optional
                   1326: alphabetic abbreviation and a numeric part.
                   1327: The abbreviation is one which appears in the
                   1328: .I L-dialcodes
                   1329: file (e.g. mh5900, boston995\-9980).
                   1330: .IP login
                   1331: is a script describing how to log in to the remote host.
                   1332: It is expressed as a series of
                   1333: fields and subfields in the format
                   1334: .IP "" 17
                   1335: expect\ \ send\ 
                   1336: [
                   1337: expect\ \ send
                   1338: ]
                   1339: \ ...
                   1340: .IP "" 12
                   1341: where;
                   1342: .I expect
                   1343: is the string expected to be read and
                   1344: .I send
                   1345: is the string to be sent when the
                   1346: .I expect
                   1347: string is received.
                   1348: The
                   1349: .I send
                   1350: string is normally terminated with carriage-return;
                   1351: an empty
                   1352: .I send
                   1353: string will send only a carriage-return.
                   1354: .IP
                   1355: The expect field may be made up of subfields
                   1356: of the form
                   1357: .IP "" 17
                   1358: expect\fB[\fR\-send\-expect\fB]\fR...
                   1359: .IP "" 12
                   1360: where the
                   1361: .I send
                   1362: is sent if the prior
                   1363: .I expect
                   1364: is not successfully read
                   1365: and the
                   1366: .I expect
                   1367: following the
                   1368: .I send
                   1369: is the next expected string.
                   1370: .RE
                   1371: .LP
                   1372: A typical entry in the L.sys file would be
                   1373: .IP "" 6
                   1374: sys\ Any\ ACU\ 1200\ \ mh7654\ login:--login:\ uucp\ ssword:\ word
                   1375: .LP
                   1376: The expect algorithm looks at the last part of the
                   1377: string as illustrated in the password field.
                   1378: .NH 2
                   1379: L.cmds \- Commands Permissions File
                   1380: .LP
                   1381: This file contains a list of commands, one per line, that are permitted
                   1382: for remote execution via \fIuux\fP.
                   1383: This list should be chosen with great care, since commands that take filenames
                   1384: as arguments will allow users to easily circumvent \*(Uu's security.
                   1385: For most sites,
                   1386: .I L.cmds
                   1387: should only include the lines:
                   1388: .DS
                   1389: rmail
                   1390: ruusend
                   1391: .DE
                   1392: .NH 2
                   1393: SQFILE \- Sequence Check File (Optional)
                   1394: .LP
                   1395: This file contains an entry for each remote
                   1396: system with which this site agrees to perform conversation
                   1397: sequence checks.
                   1398: The initial entry is just the system name of
                   1399: the remote system.
                   1400: The first conversation will add two items to the line,
                   1401: the conversation count, and the date/time of the most
                   1402: resent conversation.
                   1403: These items will be updated with each conversation.
                   1404: If a sequence check fails, which could indicate that an unauthorized
                   1405: connection has been attempted, the entry will have to
                   1406: be adjusted.
                   1407: .LP
                   1408: This facility is technically no longer supported in 4.3BSD \*(Uu,
                   1409: since it was hardly ever used and consumed precious memory space on PDP-11
                   1410: systems.
                   1411: The compile-time #define GNXSEQ can be set to enable sequence checking
                   1412: should it be needed.
                   1413: .NH 2
                   1414: USERFILE \- Pathnames Permissions File
                   1415: .LP
                   1416: This file contains user accessibility information.
                   1417: It specifies four types of constraint;
                   1418: .RS
                   1419: .IP [1]
                   1420: which files can be accessed by a normal user of the local machine,
                   1421: .IP [2]
                   1422: which files can be accessed from a remote computer,
                   1423: .IP [3]
                   1424: which login name is used by a particular remote computer,
                   1425: .IP [4]
                   1426: whether a remote computer should be called back in order to confirm
                   1427: its identity.
                   1428: .RE
                   1429: .LP
                   1430: Each line in the file has the following format
                   1431: .IP "" 6
                   1432: login,sys\ \ 
                   1433: .B [
                   1434: c
                   1435: .B ]
                   1436: \ \ path-name\ \ 
                   1437: .B [
                   1438: path-name
                   1439: .B ]
                   1440: \ ...
                   1441: .LP
                   1442: where;
                   1443: .RS
                   1444: .IP login 12
                   1445: is the login name for a user or the remote computer,
                   1446: .IP  sys
                   1447: is the system name for a remote computer,
                   1448: .IP c
                   1449: is the optional
                   1450: .I
                   1451: call-back required
                   1452: .R
                   1453: flag,
                   1454: .IP path-name
                   1455: is a path-name prefix that is acceptable for
                   1456: .I user.
                   1457: .LP
                   1458: .RE
                   1459: .LP
                   1460: The constraints are implemented as follows.
                   1461: .RS
                   1462: .IP [1]
                   1463: When the program is obeying a command stored on the local machine,
                   1464: .I MASTER
                   1465: mode,
                   1466: the path-names allowed are those given for the first line in the
                   1467: .I USERFILE
                   1468: that has a login name that matches the login name of the user
                   1469: who entered the command.
                   1470: If no such line is found, the first line with a
                   1471: .I null
                   1472: login name is used.
                   1473: .IP [2]
                   1474: When the program is responding to a command from a remote machine,
                   1475: .I SLAVE
                   1476: mode, the path-names allowed are those given for the first line
                   1477: in the file that has the system name that matches the system name
                   1478: of the remote machine.
                   1479: If no such line is found, the first one with a
                   1480: .I null
                   1481: system name is used.
                   1482: .IP [3]
                   1483: When a remote computer logs in, the login name that
                   1484: it uses must appear in the
                   1485: .I USERFILE .
                   1486: There may be several lines with the same login name but one of them must
                   1487: either have the name of the remote system or must contain a
                   1488: .I null
                   1489: system name.
                   1490: .B Note:
                   1491: This constraint, although stated in the original Nowitz \*(Uu document,
                   1492: was not implemented in Version 7 \*(Uu.
                   1493: For all practical purposes,
                   1494: a remote computer's login was not validated by \*(Uu.
                   1495: This is still the case in 4.3BSD.
                   1496: Remote login checking \fIis\fP implemented in AT&T's System VR2.2 release,
                   1497: and in the \*(Uu provided with Digital Equipment Corporation's ULTRIX.
                   1498: HoneyDanBer analogously requires all remote logins to be listed in
                   1499: its \fIPermissions\fP file.
                   1500: .IP [4]
                   1501: If the line matched in ([3]) contains a ``c'',
                   1502: the remote machine is called back before any transactions take place.
                   1503: .RE
                   1504: .LP
                   1505: The line
                   1506: .IP "" 12
                   1507: u,m  /usr/xyz
                   1508: .LP
                   1509: allows machine
                   1510: .I m
                   1511: to login with name
                   1512: .I u
                   1513: and request the transfer of files whose names start with
                   1514: ``/usr/xyz''.
                   1515: .LP
                   1516: The line
                   1517: .IP "" 12
                   1518: dan,  /usr/dan
                   1519: .LP
                   1520: allows the ordinary user
                   1521: .I dan
                   1522: to issue commands for files whose name starts with
                   1523: ``/usr/dan''.
                   1524: .LP
                   1525: The lines
                   1526: .IP "" 12
                   1527: u,m /usr/xyz  /usr/spool
                   1528: .br
                   1529: u,  /usr/spool
                   1530: .LP
                   1531: allows any remote machine to login with name
                   1532: .I u ,
                   1533: but if its system name is not
                   1534: .I m ,
                   1535: it can only ask to transfer files whose names start with
                   1536: ``/usr/spool''.
                   1537: .LP
                   1538: The lines
                   1539: .IP "" 12
                   1540: root,  /
                   1541: .br
                   1542: ,   /usr
                   1543: .LP
                   1544: allows any user to transfer files beginning with ``/usr''
                   1545: but the user with login
                   1546: .I root
                   1547: can transfer any file.
                   1548: .PP
                   1549: .RE
                   1550: .\"===========================================================================
                   1551: .\" SECTION 5: SPOOL FILES
                   1552: .\"===========================================================================
                   1553: .ne 5
                   1554: .NH
                   1555: SPOOL FILES
                   1556: .PP
                   1557: Spool Files contain \*(Uu transfer requests and data.
                   1558: Most have been described in detail earlier in this document.
                   1559: .LP
                   1560: All spool files live in the
                   1561: .B /usr/spool/uucp
                   1562: directory tree.
                   1563: To keep the spool directory from becoming hopelessly cluttered,
                   1564: each type of spool file is kept in its own subdirectory.
                   1565: The name of the directory is the same as the common prefix of the
                   1566: filename.
                   1567: For example, \fIwork files\fP (files beginning with \fBC.\fP) are kept
                   1568: in the \fBC.\fP directory; \fIexecute files\fP (which begin with \fBX.\fP)
                   1569: are kept in the \fBX.\fP directory, and so on.
                   1570: .LP
                   1571: A total of ten spool subdirectories are used, one of which is optional:
                   1572: .RS
                   1573: .IP C. 15
                   1574: \fIWork\fP files.
                   1575: .IP CORRUPT
                   1576: Corrupted \fIwork\fP and \fIexecute\fP files.
                   1577: \fIUucico\fP and \fIuuxqt\fP will deposit \fBC.\fP and \fBX.\fP files here
                   1578: when they are unable to parse them.
                   1579: A notice will also be placed in the \*(Uu log.
                   1580: .IP D.
                   1581: \fIData files\fP received from remote hosts.
                   1582: .IP D.\fIhostname\fP
                   1583: \fIData files\fP to be sent to remote hosts.
                   1584: .IP D.\fIhostname\fPX
                   1585: \fIExecution files\fP to be sent to remote hosts.
                   1586: .IP LCK
                   1587: Per-device and per-site lock (\fBLCK.\fP) files. (Optional)
                   1588: .IP STST
                   1589: Per-site system status files.
                   1590: .IP TM.
                   1591: Temporary files used in data transfer.
                   1592: When the transfer is complete, the file is typically
                   1593: \fImv\fP'ed to the \fBD.\fP or \fBX.\fP directory.
                   1594: .IP X.
                   1595: \fIExecution files\fP received from remote sites. 
                   1596: .IP XTMP
                   1597: Temporary files and home directory for \fIuuxqt\fP.
                   1598: .RE
                   1599: .LP
                   1600: The following sections describe only those spool files that were not
                   1601: discussed earlier.
                   1602: .NH 2
                   1603: LCK \- lock files
                   1604: .LP
                   1605: Lock files are created for each device in use (except for TCP/IP sockets)
                   1606: and each system conversing.
                   1607: This prevents duplicate conversations and multiple attempts to use the
                   1608: same devices.
                   1609: The form of the lock file name is
                   1610: .IP "" 12
                   1611: \fBLCK..\fRstr
                   1612: .LP
                   1613: where
                   1614: .I str
                   1615: is either a device or system name.
                   1616: The files may be left in the spool directory if
                   1617: .I uucico
                   1618: aborts.
                   1619: They will be ignored (reused) after 90 minutes.
                   1620: When runs abort and calls are desired before the time limit expires,
                   1621: the lock files should be removed.
                   1622: If the \fBLCK.\fP subdirectory is used, it's access mode can be set to 777,
                   1623: thus allowing normal users to remove dead lock files when necessary.
                   1624: .NH 2
                   1625: STST \- system status files
                   1626: .LP
                   1627: These files are created in the \fBSTST\fP subdirectory by
                   1628: \fIuucico\fP.
                   1629: They contain information of failures such as login, dialup, or
                   1630: sequence check, and will contain a
                   1631: \fITALKING\fP, \fIRECEIVING\fP, or \fPSENDING\fP
                   1632: status when two machines are conversing.
                   1633: The file name is
                   1634: \fBSTST/\fP\fIsystem\fP,
                   1635: where \fIsystem\fP is the host name of the remote machine.
                   1636: .LP
                   1637: For ordinary failures (dialup, login), the file indicates the time
                   1638: of the last failure;
                   1639: this allows \fIuucico\fP to avoid retrying the failed call too soon.
                   1640: For sequence check failures, the file must be removed before
                   1641: any future attempts to converse with that remote system.
                   1642: .LP
                   1643: If the file is left due to an aborted run, it may contain a
                   1644: .I TALKING
                   1645: status.
                   1646: In this case, the file must be removed before a conversation
                   1647: is attempted.
                   1648: The easiest way to do this is to use the \fIuupoll\fP command to
                   1649: force \fIuucico\fP to start up.
                   1650: .NH 2
                   1651: TM \- temporary data files
                   1652: .LP
                   1653: These files are created in the
                   1654: .B /usr/spool/uucp/TM.
                   1655: directory while files are being copied
                   1656: from a remote machine.
                   1657: Their names have the form
                   1658: .IP "" 12
                   1659: \fBTM\fR.pid.ddd
                   1660: .LP
                   1661: where
                   1662: .I pid
                   1663: is a process-id and
                   1664: .I ddd
                   1665: is a sequential three digit number starting at zero
                   1666: for each invocation of
                   1667: .I uucico
                   1668: and incremented for each file received.
                   1669: After the entire remote file is received, the
                   1670: .B TM
                   1671: file is moved to the requested destination,
                   1672: often the \fBX.\fP or \fBD.\fP directory.
                   1673: If processing is abnormally terminated or the
                   1674: move fails, the file will remain in the
                   1675: \fBTM.\fP directory.
                   1676: .LP
                   1677: The stranded files should be periodically removed;
                   1678: the
                   1679: .I uuclean
                   1680: program is useful in this regard.
                   1681: The command
                   1682: .IP "" 12
                   1683: uuclean\ \ -d/usr/spool/uucp/TM.\ \ \-pTM.
                   1684: .LP
                   1685: will remove all
                   1686: .B TM
                   1687: files older than three days.
                   1688: .\"===========================================================================
                   1689: .\" SECTION 6: LOG FILES
                   1690: .\"===========================================================================
                   1691: .ne 5
                   1692: .NH
                   1693: LOG FILES
                   1694: .LP
                   1695: The following files provide a history of \*(Uu activities.
                   1696: All live in the spool directory, \fB/usr/spool/uucp\fP.
                   1697: They grow forever, and must be periodically trimmed or deleted;
                   1698: this is usually done weekly (or daily) via \fIcron\fP.
                   1699: .RS
                   1700: .IP AUDIT 12
                   1701: This is a directory of audit trail files, one file per site.
                   1702: .I Uucico
                   1703: uses an audit file for debugging output
                   1704: whenever it is run with debug enabled (via the \fB-x\fP option or a
                   1705: \fBSIGFPE\fP signal), but the standard message output file \fBstderr\fP is
                   1706: not available.
                   1707: .IP ERRLOG
                   1708: This is an oft-forgotten log of \*(Uu ``Assert'' errors.
                   1709: An Assert error is a catastrophic and unrecoverable failure of the \*(Uu
                   1710: system.
                   1711: These include spool directories or control files that cannot be opened, 
                   1712: an unexpected error return from a system call, or an ``impossible case''
                   1713: in a utility's control flow.
                   1714: .IP
                   1715: Utilities that abort with an Assert error return a status code of -1.
                   1716: If a user reports \fIuucp\fP or \fIuux\fP dying with a message like
                   1717: ``uux failed, status -1,'' then the ERRLOG file should be checked.
                   1718: .IP LOGFILE
                   1719: This is the primary \*(Uu log. All \*(Uu activity is recorded here,
                   1720: including queue requests from \fIuucp\fP and \fIuux\fP, attempted
                   1721: connections, file transfers, and communications failures.
                   1722: .IP SYSLOG
                   1723: This is a log of file transfer statistics: number of bytes, time required,
                   1724: and number of packet retries.
                   1725: The effective data rate can be calculated simply by dividing the number of
                   1726: bytes by the time;
                   1727: low data rates or a large number of retries implies that the communication
                   1728: link may marginal.
                   1729: .RE
                   1730: .LP
                   1731: Optionally, one \fILOGFILE\fP per site may be maintained in the \fBLOG\fP
                   1732: subdirectory.
                   1733: This option can be selected at \*(Uu compile time via the LOGBYSITE #define
                   1734: in \fBuucp.h\fP.
                   1735: .\"===========================================================================
                   1736: .\" SECTION 7: ADMINSTRATION AND SYSTEM SECURITY
                   1737: .\"===========================================================================
                   1738: .ne 5
                   1739: .NH
                   1740: ADMINISTRATION AND SYSTEM SECURITY
                   1741: .NH 2
                   1742: .UX 
                   1743: System Files
                   1744: .SH
                   1745: /etc/passwd
                   1746: .LP
                   1747: \*(Uu requires a login in \fB/etc/passwd\fP;
                   1748: at its simplest the entry would be
                   1749: .DS
                   1750: uucp::66:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
                   1751: .DE
                   1752: .LP
                   1753: This user should own all the \*(Uu files and utilities.
                   1754: Remote sites wishing to call in for \*(Uu transfers would login to
                   1755: \fBuucp\fP (with the correct password, if any), and get
                   1756: .I uucico
                   1757: as their ``shell.''
                   1758: Since \fIuucico\fP would be called without any options, it would run in
                   1759: .I SLAVE
                   1760: mode, thus responding correctly to the remote system, which
                   1761: would be in
                   1762: .I MASTER
                   1763: mode.
                   1764: .LP
                   1765: The directory
                   1766: .B /usr/spool/uucppublic
                   1767: should be created with 777 access modes, owned by \fBuucp\fP.
                   1768: In addition to serving as the home directory for \*(Uu remote logins,
                   1769: .B uucppublic
                   1770: provides a ``public-access'' directory where any user can read, write,
                   1771: or transfer files.
                   1772: .LP
                   1773: There are a number of security problems with using a single login, not
                   1774: the least of which is that superuser permission would be necessary to
                   1775: edit the \fIcontrol\fP files.
                   1776: A better arrangement would be:
                   1777: .DS
                   1778: uucp::66:1:UUCP Administrator:/usr/lib/uucp:
                   1779: nuucp::67:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
                   1780: .DE
                   1781: This provides one login for the \*(Uu administrator (which must be kept
                   1782: secure!) and a second for remote machines to use for login.
                   1783: A still more elaborate setup would use a separate login for each remote
                   1784: site, and possibly provide the administrator with a choice of shells:
                   1785: .DS
                   1786: uucp::66:1:UUCP Administrator:/usr/lib/uucp:
                   1787: UUCP::66:1:UUCP Administrator:/usr/lib/uucp:/bin/csh
                   1788: Uhosta::6001:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
                   1789: Uhostb::6002:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
                   1790: Uhostc::6003:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico
                   1791: .DE
                   1792: .LP
                   1793: It is assumed that the login name
                   1794: used by a remote computer to dial in
                   1795: is not the same as the login name of a normal user
                   1796: of the machine.
                   1797: However, several remote computers may employ the same
                   1798: login name.
                   1799: .LP
                   1800: Note that
                   1801: .B uucppublic
                   1802: is
                   1803: .I not
                   1804: used as the home directory for
                   1805: .B uucp
                   1806: when it logs into a regular shell.
                   1807: This would be an extreme security hazard, since anyone could slip a
                   1808: ``Trojan horse'' into a
                   1809: .B .profile
                   1810: or
                   1811: .B .cshrc
                   1812: file, which would be automatically executed when the \*(Uu administrator
                   1813: logged in.
                   1814: .SH
                   1815: /etc/rc
                   1816: .LP
                   1817: The system startup file, \fB/etc/rc\fP, should clean up any stray lock
                   1818: files with the line
                   1819: .IP
                   1820: rm -f /usr/spool/uucp/LCK.*
                   1821: .LP
                   1822: or, if the LCK subdirectory is being used,
                   1823: .IP
                   1824: rm -f /usr/spool/uucp/LCK/LCK.*
                   1825: .SH
                   1826: /etc/services
                   1827: .LP
                   1828: If \*(Uu is to be used over TCP/IP links, then an entry for \*(Uu's port
                   1829: number should be added to \fB/etc/services\fP:
                   1830: .IP
                   1831: uucp\ \ 540/tcp\ \ uucpd\ \ # UUCP TCP/IP
                   1832: .\"===========================================================================
                   1833: .NH 2
                   1834: Shell Scripts For Periodic Cleanup
                   1835: .LP
                   1836: The \*(Uu system has a fairly large number of activities that must
                   1837: occur periodically.
                   1838: These include starting \fIuucico\fP to process queued requests,
                   1839: running \fIuuclean\fP to remove old spool files, and
                   1840: shuffling the boundlessly-growing log files.
                   1841: Some sites will also want to poll other sites periodically.
                   1842: .LP
                   1843: While it's possible to put all the necessary commands into \fIcron\fP's
                   1844: control file \fB/usr/lib/crontab\fP, this would be extremely awkward.
                   1845: The usual technique is to use three separate shells scripts, one each
                   1846: for hourly, daily, and weekly operations.
                   1847: Examples are provided in the
                   1848: .B UUAIDS
                   1849: directory; the following sections provide some specific recommendations.
                   1850: .SH
                   1851: Hourly
                   1852: .LP
                   1853: Activities that should occur hourly include:
                   1854: .RS
                   1855: .IP - 2
                   1856: Polling of selected sites.
                   1857: Sites that have no dial-out capability will need to be periodically polled.
                   1858: The \fIuupoll\fP command works well for this.
                   1859: .IP -
                   1860: Start \fIuucico\fP to complete all unfinished work.
                   1861: This can be as simple as:
                   1862: .IP "" 7
                   1863: uucico -r1 &
                   1864: .RE
                   1865: .SH
                   1866: Daily
                   1867: .LP
                   1868: The daily script should be started by \fIcron\fP in the wee hours, around
                   1869: 4 a.m.
                   1870: Activities that should occur daily include:
                   1871: .RS
                   1872: .IP - 2
                   1873: Call
                   1874: .I uuclean
                   1875: to remove old spool files.
                   1876: The preferred technique is something like the following:
                   1877: .DS
                   1878: cd /usr/lib/uucp
                   1879: deadtime=`expr 24 \* 7`
                   1880: uuclean -d/usr/spool/uucp/AUDIT -n72
                   1881: uuclean -d/usr/spool/uucp/LCK -pLCK. -pLTMP. -n24
                   1882: uuclean -d/usr/spool/uucp/STST -n72
                   1883: uuclean -d/usr/spool/uucp/TM. -pTM. -n72
                   1884: uuclean -d/usr/spool/uucp/XTMP -n72
                   1885: uuclean -d/usr/spool/uucp/X. -pX. -n$deadtime
                   1886: uuclean -d/usr/spool/uucp/C. -pC. -n$deadtime
                   1887: uuclean -d/usr/spool/uucp/D. -pD. -n$deadtime
                   1888: uuclean -d/usr/spool/uucp/D.`uuname -l` -pD. -n$deadtime
                   1889: uuclean -d/usr/spool/uucp/D.`uuname -l`X -pD. -n$deadtime
                   1890: .DE
                   1891: .IP
                   1892: In this example,
                   1893: Audit files, Lock files, System Status files, temp files, and \fIuuxqt\fP
                   1894: output files are cleaned up every 72 hours (3 days).
                   1895: (\fBLTMP.\fP files are temporary files created by the lock mechanism;
                   1896: they are rarely around for more than a few seconds.
                   1897: Note, the above assumes that the
                   1898: .B LCK
                   1899: subdirectory is being used.)
                   1900: All normal data files are cleaned up every 24 * 7 hours, or every 7 days.
                   1901: .IP -
                   1902: Shuffle the log files.
                   1903: At the very least, LOGFILE should be moved to LOGFILE.old, and SYSLOG moved
                   1904: to SYSLOG.old.
                   1905: Busy sites may want to use \fIcompress\fP(1) to squeeze down the old files.
                   1906: .IP -
                   1907: Use \fIfind\fP(1) to clean up the
                   1908: .B /usr/spool/uucppublic
                   1909: directory.
                   1910: If left unattended, garbage will gradually accumulate there until it fills
                   1911: the file system.
                   1912: .RE
                   1913: .SH
                   1914: Weekly
                   1915: .LP
                   1916: Small sites with very little traffic may chose to shuffle the log files once
                   1917: per week, instead of once per day.
                   1918: The weekly script should, like the daily script, be run early in the morning.
                   1919: .\"===========================================================================
                   1920: .NH 2
                   1921: Connecting new systems
                   1922: .LP
                   1923: When first connecting a new machine to a \*(Uu network,
                   1924: it is useful to try and establish a connection with
                   1925: \fItip\fR or \fIcu\fR first.
                   1926: The \*(Uu administrator will quickly become aware of any special facilities
                   1927: that are going to be required,
                   1928: for example:
                   1929: What lines and modems are to be used?
                   1930: Is the connection through different hardware and carriers?
                   1931: Does the remote system care about parity?
                   1932: What speed lines are being used and do they cycle through several speeds?
                   1933: Is there a line switch front end that will require special login dialogue in
                   1934: \fBL.sys\fP?
                   1935: .LP
                   1936: Once a successful login is achieved ``by hand,'' the administrator should
                   1937: have enough information to allow the correct setup of the \fIcontrol\fR files
                   1938: in
                   1939: .B/usr/lib/uucp.
                   1940: .LP
                   1941: The \*(Uu administrator should then
                   1942: negotiate with the remote site's \*(Uu administrator
                   1943: as to who (if anyone) will do polling and when.
                   1944: Both administrators must set up the relevant accounts and passwords.
                   1945: The local administrator should
                   1946: decide on what permissions and security precautions are to be observed.
                   1947: Testing time and facilities will need to be arranged
                   1948: to complete initial connection testing between the systems.
                   1949: .\"============================================================================
                   1950: .NH 2
                   1951: Miscellaneous Security Issues
                   1952: .LP
                   1953: The \*(Uu system, left unrestricted,
                   1954: will let any outside user execute any commands
                   1955: and copy any files that are accessible
                   1956: to the
                   1957: .B uucp
                   1958: login user.
                   1959: It is up to the individual sites to be aware of this and
                   1960: apply the protections that they feel are necessary.
                   1961: .PP
                   1962: There are several security features available aside from the
                   1963: normal file mode protections.
                   1964: These must be set up by the installer of the
                   1965: \*(Uu
                   1966: system.
                   1967: .IP - 3
                   1968: The login for uucp does not get a standard shell.
                   1969: Instead, 
                   1970: .I uucico
                   1971: is started.
                   1972: Therefore, the only work that can be done is through
                   1973: .I uucico .
                   1974: .IP -
                   1975: A path check is done on file names that are to be sent
                   1976: or received.
                   1977: .I USERFILE
                   1978: supplies the information for these checks.
                   1979: .I USERFILE
                   1980: can also be set up to require call-back
                   1981: for certain login-ids.
                   1982: (See the description of 
                   1983: .I USERFILE
                   1984: above.)
                   1985: .IP -
                   1986: A conversation sequence count can be set up so
                   1987: that the called system
                   1988: can be more confident that the caller
                   1989: is who he says he is.
                   1990: .IP -
                   1991: .I Uuxqt
                   1992: is restricted via the
                   1993: .I L.cmds
                   1994: file to a small list of commands that it
                   1995: will execute.
                   1996: A ``PATH'' shell statement is prepended to the command
                   1997: line as specified in the
                   1998: .I L.cmds
                   1999: file.
                   2000: The administrator may modify the list or remove the
                   2001: restrictions as desired.
                   2002: .IP -
                   2003: All the \*( utilities except \fIuudecode\fP, \fIuuencode\fP,
                   2004: and \fIuusend\fP should be owned by the
                   2005: .B uucp
                   2006: login with the ``setuid'' bit set and only execute
                   2007: permissions (e.g. mode 04111).
                   2008: This will prevent outsiders from modifying the programs
                   2009: to get at a standard shell with a
                   2010: .B uucp
                   2011: login.
                   2012: Optionally, the utilities may belong to group \fBdaemon\fP and be given
                   2013: ``setgid'' permissions (mode 06111).
                   2014: \fIUuxqt\fP should only permit other \*(Uu programs to execute it;
                   2015: its mode should be 04100 or 06110.
                   2016: .IP -
                   2017: The \fIcontrol\fP files \fIL.sys\fP, \fIUSERFILE\fP, and \fISQFILE\fP
                   2018: contain highly sensitive information.
                   2019: They should be owned by the
                   2020: .B uucp
                   2021: login, with read and write permission granted only to the owner (mode 0600).
                   2022: .\"===========================================================================
                   2023: .\" SECTION 7: UUCP SOURCE INSTALLATION
                   2024: .\"===========================================================================
                   2025: .ne 5
                   2026: .NH
                   2027: INSTALLING THE \*(UU SYSTEM
                   2028: .PP
                   2029: The source for the \*(UU system resides in the
                   2030: .B /usr/src/usr.bin/uucp
                   2031: directory.
                   2032: The README file includes complete instructions on how to rebuild the
                   2033: \*(Uu system from source.
                   2034: .LP
                   2035: For most environments, only two files will need to be modified:
                   2036: .B uucp.h
                   2037: includes a large number of tunable system-dependent parameters,
                   2038: including operating system type, devices to be supported,
                   2039: and a variety of optional features.
                   2040: The
                   2041: .B Makefile
                   2042: may also have to be modified,
                   2043: particularly if you chose to keep certain files in different
                   2044: directories from usual.
                   2045: .\"===========================================================================
                   2046: .\" SECTION 8: ACKNOWLEDGMENTS
                   2047: .\"===========================================================================
                   2048: .ne 5
                   2049: .NH
                   2050: ACKNOWLEDGEMENTS
                   2051: .PP
                   2052: 4.3BSD UUCP was a group development effort, involving the contributed work
                   2053: of over one hundred members of the USENET community.
                   2054: We're extremely grateful to them all.
                   2055: .LP
                   2056: Special thanks go to the following individuals, whose contributions were
                   2057: especially valuable:
                   2058: .RS
                   2059: .IP - 2
                   2060: Rick Adams (Center for Seismic Studies) coordinated the 4.3BSD UUCP release,
                   2061: incorporating (and often correcting) hundreds of bug fixes that
                   2062: were posted on the USENET and mailed to him directly.
                   2063: Rick also managed to find time to add many enhancements
                   2064: and corrections of his own.
                   2065: .IP -
                   2066: Tom Truscott (Research Triangle Institute) and Bob Gray (then with
                   2067: PAR Tech Corp, now at Univ of Colorado)
                   2068: coordinated the 4.2BSD UUCP release, which was also a group effort.
                   2069: Tom has continued to provide enhancements and fixes in 4.3BSD.
                   2070: .IP -
                   2071: Guy Harris (then with Computer Consoles, Inc., now with Sun Microsystems)
                   2072: contributed many general bug fixes;
                   2073: in particular, he was the first to isolate the infamous 4.2BSD ``TIMEOUT'' bug.
                   2074: .IP -
                   2075: Lou Salkind (New York University) wrote the \fIuuq\fP utility.
                   2076: .IP -
                   2077: James Bloom (U.C. Berkeley) isolated a major
                   2078: day-one bug in the \fBg\fP-protocol driver
                   2079: that had eluded many people's attempts to squash it.
                   2080: .IP -
                   2081: Piet Beertema (Centrum voor Wiskunde en Informatica, Amsterdam) wrote the
                   2082: \fBf\fP-protocol to support ``mostly error-free links'';
                   2083: Robert Elz (University of Melbourne) modified the protocol
                   2084: specifically for X.25/PAD.
                   2085: .IP -
                   2086: Peter Honeyman (Princeton) assisted Rick by providing information on the
                   2087: facilities provided in HoneyDanBer UUCP;
                   2088: Rick then added many HDB-compatibility features and HDB-like
                   2089: extensions to 4.3BSD UUCP.
                   2090: .IP -
                   2091: Ross Green (U.C. Berkeley) produced the first revision of this chapter,
                   2092: updating the aging Nowitz document to more closely reflect reality.
                   2093: .RE
                   2094: .LP
                   2095: Thanks again to everyone who contributed.
                   2096: Berkeley UUCP continues to be a product of its own users,
                   2097: and would not exist as it does today without them.

unix.superglobalmegacorp.com

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