Annotation of researchv10no/cmd/uucp/doc/admin/uucp.D, revision 1.1.1.1

1.1       root        1: ....mm -t -rC3 this document
                      2: .ND "June 8, 1984"
                      3: .EH "'CHAPTER 10'UUCP ADMINISTRATION''"
                      4: .OH "''UUCP ADMINISTRATION'CHAPTER 10'"
                      5: .H 1 "UUCP ADMINISTRATION"
                      6: .H 2 "INTRODUCTION"
                      7: .P
                      8: This chapter describes how a \fBuucp\fR network
                      9: is set up, the format of control files, and administrative procedures.
                     10: Administrators should be familiar with the
                     11: manual pages for each of the
                     12: \fBuucp\fR
                     13: related commands.
                     14: .H 2 "PLANNING"
                     15: .P
                     16: In setting up a network of UNIX systems, there
                     17: are several considerations that should be taken into account
                     18: \fIbefore\fR
                     19: configuring each system on the network.
                     20: The following parts attempt to
                     21: outline the most important considerations.
                     22: .H 3 "Extent of the Network"
                     23: .P
                     24: Some basic decisions about
                     25: access
                     26: to processors in the network must be made
                     27: before attempting to set up the configuration files.
                     28: If an administrator has control over only one processor
                     29: and an existing
                     30: network is being joined,
                     31: then the administrator must decide what level of access should
                     32: be granted to other systems.
                     33: The other members of the network must make a similar decision for the new system.
                     34: The
                     35: UNIX
                     36: system
                     37: \fIpassword\fR
                     38: mechanism is
                     39: used to grant access to other systems.
                     40: The file
                     41: \fI/usr/lib/uucp/Permissions\fR
                     42: provides various permissions/restrictions for file system tree access
                     43: and command execution from remote machines,
                     44: and the file
                     45: \fI/usr/lib/uucp/Systems\fR
                     46: (old name was \fI/usr/lib/uucp/L.sys\fR)
                     47: on the local processor determines the
                     48: systems on the network that can be directly reached.
                     49: .P
                     50: When setting up more than one processor,
                     51: the administrator has control of a larger portion
                     52: of the network and can make more decisions about the
                     53: setup.
                     54: For example, the network can be set up as a
                     55: private
                     56: network
                     57: where only those machines under the direct control of the administrator
                     58: can access each other.
                     59: Granting
                     60: no
                     61: access to machines outside the network can be done if security
                     62: is paramount; however, this is usually impractical.
                     63: Very limited access can be granted to outside machines by each
                     64: of the systems
                     65: on the
                     66: private
                     67: network.
                     68: Alternatively, access to/from the outside
                     69: world can be confined to only one processor.
                     70: This is frequently done to minimize the effort in keeping
                     71: access information (passwords, phone numbers, login sequences, etc.)
                     72: updated and to localize the security holes
                     73: for the private network.
                     74: .H 3 "Hardware and Line Speeds"
                     75: .P
                     76: There are several supported means of interconnection
                     77: by
                     78: \fBuucp\fR(1),
                     79: .AL
                     80: .LI
                     81: Direct connection using a null modem.
                     82: .LI
                     83: Connection over the Direct Distance Dialing (DDD) network
                     84: using various dialers (e.g. WECo 801, Ventel, Vadic, Penril).
                     85: .LI
                     86: Connection using a DATAKIT\*(Tm VCS.
                     87: .FS ""
                     88: DATAKIT is a trademark of AT&T.
                     89: .FE
                     90: .LI
                     91: A UNET\*(EMEthernet\*(Tm network.
                     92: .FS ""
                     93: Ethernet is a trademark of Xerox Corporation.
                     94: .FE
                     95: .LE
                     96: .P
                     97: In choosing hardware, the
                     98: equipment
                     99: used by other processors on the network must be considered.
                    100: For example, if some systems on the network
                    101: have only 103-type (300-baud) data sets, then
                    102: communication with them is not possible
                    103: unless the local system has a 300-baud data set connected to a calling unit.
                    104: (Most data sets available on systems
                    105: are 1200-baud.)
                    106: If hard-wired connections are to be used between
                    107: systems, then the
                    108: distance
                    109: between systems must be considered since a null modem cannot be used
                    110: when the systems are separated by more than several hundred feet.
                    111: The limit for
                    112: communication at 9600-baud and 19200-baud is about 800 to 1000 feet.
                    113: However, the
                    114: RS232 specification and Western Electric Support Groups
                    115: allow for up to 50 feet.
                    116: Limited distance modems must be used beyond 50 feet as
                    117: noise on the lines becomes a problem.
                    118: .H 3 "Maintenance and Administration"
                    119: .P
                    120: There is a minimum amount of maintenance that must be provided
                    121: on each system to keep the access files updated, to ensure that
                    122: the network is running properly, and to track down line problems.
                    123: When more than one system is involved, the job becomes
                    124: more difficult because there are more
                    125: files to update and because
                    126: users are much less patient when failures occur between machines that
                    127: are under local control.
                    128: A tool, \fIuustat\fR, is available to aid the administrator by providing
                    129: information about the last attempts to contact various systems and the
                    130: age and number of jobs in the queue for remote systems.
                    131: .P
                    132: There is also a new cleanup program, \fBuucleanup\fR, that knows
                    133: about the different type files that could get left in the spool
                    134: directories.
                    135: It uses some heuristics in an attempt to give the users relevant
                    136: information about failures, for example, it tries to return
                    137: undeliverable mail messages to the sender.
                    138: In addition, for send/receive requests, it tells the requestor
                    139: what was attempted by giving specific file names.
                    140: The program is started by \fBuudemon.cleanup\fR,
                    141: which provides some addition cleanup functions.
                    142: See the \fIuucleanup.1m\fR manual page for details.
                    143: .H 2 "UUCP SOFTWARE"
                    144: .P
                    145: Figure 10-1 (at the end of this chapter)
                    146: illustrates the daemons used by the
                    147: \fBuucp\fR
                    148: network
                    149: to communicate with another
                    150: system.
                    151: The
                    152: \fBuucp\fR(1)
                    153: or
                    154: \fBuux\fR(1)
                    155: commands queue users' requests
                    156: and spawn
                    157: the
                    158: \fBuucico\fR
                    159: daemon
                    160: to call another system.
                    161: Figure 10-2 (at the end of this chapter)
                    162: illustrates the structure of
                    163: \fBuucico\fR
                    164: and the tasks that it performs in communicating with another system.
                    165: \fBUucico\fR initiates the call to another system and
                    166: performs the file transfer.
                    167: On the receiving side,
                    168: \fBuucico\fR
                    169: is invoked to receive the transfer.
                    170: Remote execution jobs are actually
                    171: done by transferring a command file to the remote
                    172: system and invoking a daemon
                    173: (\fBuuxqt\fR)
                    174: to execute that command file and return the results.
                    175: .H 2 "INSTALLATION"
                    176: .P
                    177: The
                    178: \fBuucp\fR(1)
                    179: package is delivered
                    180: as part of the
                    181: standard UNIX system distribution.
                    182: It resides in its own subdirectory (called
                    183: \fIuucp\fR)
                    184: in the commands area and has its own make file
                    185: (\fIuucp.mk\fR).
                    186: The
                    187: \fBuucp\fR
                    188: package is installed as part of the normal distribution;
                    189: however, if it must be reinstalled for
                    190: any reason, then the sequence
                    191: .DS I
                    192: make \-f uucp.mk install
                    193: .DE
                    194: should be executed.
                    195: In addition, the distribution has default setting for uucp system
                    196: parameters, such as the available communication media.
                    197: If there are local differences, the \fIparms.h\fR
                    198: file should be modified before the ``make'' command is executed.
                    199: (See appendix I for details of the options for the parms.h file.)
                    200: .H 3 "Object Modules"
                    201: .P
                    202: The following object modules are installed as part
                    203: of the
                    204: \fBuucp\fR
                    205: make procedure.
                    206: .AL
                    207: .LI
                    208: \fBUucp\fR\*(EMThe file transfer command.
                    209: .LI
                    210: \fBUux\fR\*(EMThe remote execution command.
                    211: .LI
                    212: \fBUucico\fR\*(EMThe
                    213: \fBuucp\fR
                    214: network daemon.
                    215: .LI
                    216: \fBUustat\fR\*(EMNetwork status command.
                    217: .LI
                    218: \fBUusched\fR\*(EMFile tranfer daemon scheduler.
                    219: .LI
                    220: \fBUucheck\fR\*(EMThe \fIuucp\fR system files, directories, and Permissions
                    221: file checker.
                    222: .LI
                    223: \fBUuxqt\fR\*(EMThe remote execution daemon.
                    224: .LI
                    225: \fBUugetty\fR\*(EMA getty that can be used for lines/modems that are to
                    226: work as dialin and dialout ports.
                    227: .LI
                    228: \fBUulog\fR\*(EMA shell for looking at the various log files.
                    229: .LI
                    230: \fBUutry\fR\*(EMA shell for administrators that is used to try a remote
                    231: system with debugging options.
                    232: Note that the name has the first letter in upper case (Uutry).
                    233: .LI
                    234: Several shell procedures are also distributed;
                    235: these are started periodically by \fIcron\fR.
                    236: \fBUudemon.cleanup\fR is usually executed daily to clean up
                    237: various directories.
                    238: \fBUudemon.hour\fR is used to start the file transfer scheduler and
                    239: the command execution daemon.
                    240: \fBUudemon.admin\fR is available to send data to the uucp administrator
                    241: giving information about the status of the system.
                    242: And \fBuudemon.poll\fR is used for periodic polling of remote systems.
                    243: .LE
                    244: .H 3 "Password File"
                    245: .P
                    246: To allow remote systems to call
                    247: the local system, password entries must be made
                    248: for any
                    249: \fBuucp\fR
                    250: logins.
                    251: For example,
                    252: .DS
                    253: \s-1nuucp:zaaAA:6:1:UUCP.Admin:/usr/spool/uucppublic:/usr/lib/uucp/uucico\s+1
                    254: .DE
                    255: Note that the
                    256: \fBuucico\fR
                    257: daemon is used for the
                    258: shell,
                    259: and the spool directory
                    260: is used as the working directory.
                    261: .P
                    262: There must also be an entry in the
                    263: \fIpasswd\fR file for a \fBuucp\fR administrative
                    264: login.
                    265: This login is the owner of all the \fBuucp\fR
                    266: object and spooled data files and is usually ``uucp''.
                    267: For example, the following is a entry in
                    268: \fI/etc/passwd\fR for this administrative login:
                    269: .DS I
                    270: uucp:zAvLCKp:5:1:UUCP.Admin:/usr/lib/uucp:
                    271: .DE
                    272: Note that the standard shell is used instead of
                    273: \fBuucico\fR.
                    274: If an owner other than ``uucp''
                    275: is chosen, the \fImake\fR file for \fBuucp\fR
                    276: (\fI/usr/src/cmd/uucp/uucp.mk\fR) must be edited.
                    277: The line "OWNER=uucp" must be changed to reflect the
                    278: new owner login.
                    279: .H 3 "Devices File"
                    280: .P
                    281: The file
                    282: \fI/usr/lib/uucp/Devices\fR
                    283: (old name was \fI/usr/lib/uucp/L-devices\fR)
                    284: contains the device information needed
                    285: for calling other systems.
                    286: The format of the file is
                    287: .ml |
                    288: .DS I
                    289: Caller  Line  Line2  Class  Dialer-Token-Pairs
                    290: .DE
                    291: where each field is
                    292: .VL 18 4
                    293: .LI \fICaller\fR
                    294: The keywords available in this field are
                    295: .VL 9 0
                    296: .LI Direct
                    297: for a hard-wired line used by cu for direct connections.
                    298: .LI ACU
                    299: to make the connection through an autodialer.
                    300: .LI \fINETWORK\fR
                    301: to make the connection through a switch where \fINETWORK\fR
                    302: is replaces by one of
                    303: Sytek, Unetserver, DK, Sytek, TCP.
                    304: .LI \fISYSTEM-NAME\fR
                    305: for hard-wired connections to a particular system where
                    306: \fISYSTEM-NAME\fR is replaced by the name of the system.
                    307: .LE
                    308: .LI \fILine\fR
                    309: This is the device name for the line (e.g.,
                    310: \fIttyab\fR
                    311: for a direct line or hard-wired line to a system,
                    312: \fIcul0\fR
                    313: for a line connected to an ACU).
                    314: .LI \fILine2\fR
                    315: If the ACU keyword is specified and the device type is 801,
                    316: this field contains the
                    317: device name of the 801 dialing device ACU.
                    318: Otherwise, the field is ignored; however, a placeholder must be
                    319: used in this field (use '-' character for the placeholder).
                    320: .ml
                    321: .LI \fIClass\fR
                    322: For ACU, this can be just the speed,
                    323: or it can contain a letter and speed (e.g. D1200, C1200)
                    324: to differentiate between classes of dialers (Centrex, Dimension).
                    325: Some devices can be used at any speed, so the keyword ``Any''
                    326: is used\*(EMthis line will match any speed requested in Systems.
                    327: Note:
                    328: If this field is ``Any'' and the Systems class field is ``Any''
                    329: then the speed is taken from the default set in \fIparms.h\fR
                    330: by the \fIDEFAULT_BAUDRATE\fR constant.
                    331: (The Class field is currently ignored if an X.25 link is used.)
                    332: .ml |
                    333: .LI \fIDialer-Token-Pairs\fR
                    334: The rest of the line contains pairs of dialers and tokens.
                    335: Each pair represents a caller function and an argument to
                    336: pass to that function.
                    337: (The last token may be left blank if it is to represent a
                    338: phone number.
                    339: See examples below.)
                    340: Dialers that are supported are
                    341: .VL 18 0
                    342: .LI 801
                    343: standard 801 autodialer with 212 or 103 modem.
                    344: .LI penril
                    345: this is a penril autodialer.
                    346: .LI hayes
                    347: this is a hayes autodialer.
                    348: .LI ventel
                    349: this is a ventel autodialer.
                    350: .LI vadic
                    351: this is a vadic dialer.
                    352: .LI \fINETWORK\fR
                    353: one of the names listed for \fINETWORK\fR above.
                    354: .LI \fIOTHER-DIALERS\fR
                    355: other dialers can be constructed by putting information in
                    356: the \fIDialers\fR file.
                    357: See \fIDialers\fR section below.
                    358: .LE
                    359: .P
                    360: The token following the Dialer can usually be left blank;
                    361: this represents the phone number.
                    362: The string ``\\D'' can be used in place of the blank;
                    363: it means use the phone number given in the \fISystems\fR file
                    364: as the argument to the dialer routing.
                    365: .P
                    366: It is possible to have dialout modems on networks.
                    367: For these cases, the \fICaller\fR will be ACU and the
                    368: \fIDialer-Token-Pair\fR will be the token given to the
                    369: network routine to attach to the dialout modem.
                    370: These two fields will be followed by another \fIDialer-Token-Pair\fR,
                    371: the dialer routine name (e.g. ventel) and the phone number
                    372: (e.g. ``\\D'' or ``\\T'' or blank.)
                    373: .LE
                    374: .P
                    375: The following examples
                    376: illustrate various types of connections:
                    377: .TS
                    378: l l l l l .
                    379: ACU    cul0    cua0    1200    801
                    380: ACU    cul1    cua1    300     801
                    381: ACU    vn0     -       1200    ventel
                    382: ACU    vn0     -       300     ventel
                    383: ACU    vd0     -       1200    vadic
                    384: ACU    vd0     -       V1200   vadic
                    385: ACU    pn2     -       1200    penril
                    386: ACU    pn2     -       300     penril
                    387: .TE
                    388: .ml
                    389: .P
                    390: /dev/cul0 and /dev/cul1 are 212 modems (cul1 may be a 103 type),
                    391: with 801s at /dev/cua0 and
                    392: /dev/cua1 respectively; /dev/vn0 is hooked to a ventel and can be used
                    393: at 1200 or 300 baud, and /dev/vd0 is hooked to a vadic.
                    394: There are
                    395: two entries for vadic so that sites that speak vadic tones only can be
                    396: flagged V1200 in \fISystems\fR.
                    397: (Actually, this assumes the vadic is a triple,
                    398: because sites that talk 212 tones will get the vadic as well as these two entries.)
                    399: There is also a penril dialer on /dev/pn2;
                    400: it can be used at either 300 or 1200 baud.
                    401: .P
                    402: .ml |
                    403: .tr ~\\
                    404: .TS
                    405: l l l l l .
                    406: ACU    culd0   -       Any     develcon vent ventel ~D
                    407: ACU    culd1   -       Any     develcon vent ventel ~D
                    408: .TE
                    409: .tr ~
                    410: .P
                    411: There are two
                    412: ventel attached to the develcon; the line is culd0.
                    413: The ``vent'' is the token given to the develcon switch to get to the
                    414: ventel modem.
                    415: The ``\\D'' specifies the telephone number
                    416: from the \fISystems\fR file.
                    417: .P
                    418: Note:
                    419: In addition to the ``\\D'', there will sometimes be a need for
                    420: passing a phone number to a built-in routine
                    421: (e.g. DK) after it is expanded using the \fIDialcodes\fR file.
                    422: In this case, a ``\\T'' symbol is used instead of the ``\\D''.
                    423: For example
                    424: .TS
                    425: l l l l l .
                    426: ACU    -       0       Any     DK      dial.\T
                    427: .TE
                    428: .P
                    429: is an entry for using a dialer on a Datakit network.
                    430: .P
                    431: .TS
                    432: l l l l l .
                    433: raven  ttyab   -       9600    direct
                    434: Direct ttyab   -       9600    direct
                    435: cbgbd  x25.s0  -       9600    direct
                    436: .TE
                    437: .P
                    438: There is a direct lines, one (ttyab) is a null-modem type connection
                    439: with the other end on system raven
                    440: while the second (x25.s0) is an X.25 permanent virtual circuit connection
                    441: to machine cbgbd.
                    442: Note also the ``Direct'' line;
                    443: this is used if a user would like to use the command
                    444: .DS
                    445:        cu -lttyab
                    446: .DE
                    447: to connect to machine ``raven''.
                    448: .H 4 "Naming Conventions"
                    449: .P
                    450: It is often useful when naming lines that are directly
                    451: connected between systems or that are dedicated to
                    452: calling other systems to choose a
                    453: naming scheme that conveys the use of the line.
                    454: In the earlier examples, the name
                    455: \fIttyab\fR
                    456: is used for the line that directly connects
                    457: two systems named
                    458: \fIa\fR
                    459: and
                    460: \fIb\fR.
                    461: Similarly, lines associated with calling
                    462: units are best given names that relate them to the
                    463: calling unit autodialer (note
                    464: the names
                    465: \fIcul0\fR
                    466: and
                    467: \fIcua0\fR
                    468: to specify the line and calling unit, respectively).
                    469: .H 3 "Dialers"
                    470: .P
                    471: Each line in the \fIDialers\fR file
                    472: is used to specify
                    473: the initial handshaking that should occur on a line before it
                    474: is made available for user data.
                    475: This initial handshaking is usually a sequence of ascii strings
                    476: that are transmitted and expected,
                    477: and is often used to dial a phone number using an ascii dialer
                    478: (such as a PENRIL 300/1200AD) or connect via a dataswitch to
                    479: another system on the dataswitch.
                    480: If the fifth field in the Devices file line is not
                    481: a built-in function name,
                    482: the field is used as an
                    483: index into the \fIDialers\fR file,
                    484: attempting to match the first field on each line.
                    485: In addition, each odd numbered field starting with the 7th position
                    486: is used as an index into the ``Dialers'' file.
                    487: .P
                    488: If the match succeeds,
                    489: the ``Dialers'' line is interpreted to perform
                    490: the dialer negotiations.
                    491: Field 1 match the 5th and additional odd numbered
                    492: fields in the ``Devices'' file.
                    493: The second field is used as a translate
                    494: string:
                    495: the first of each pair of characters in the string is
                    496: mapped to the second character in the pair in the phone number to
                    497: be dialed.
                    498: This is usually used to translate = and \- into whatever
                    499: the dialer requires for ``wait for dialtone'' and ``pause''.
                    500: .P
                    501: The remaining fields are ``expect''/``send'' strings
                    502: (seethe ``login'' section for an explaination of expect-send fields.)
                    503: Here are some sample line;
                    504: these will be distributed with the system and installed
                    505: as part of the installation procedures.
                    506: The administrator can modify them as required.
                    507: The escape characters, those beginning with ``\\'', have the same
                    508: meaning as specified in the ``Login'' section of the
                    509: ``Systems'' file below.
                    510: In addition to those mentioned in that section,
                    511: the `\\T'' and ``\\D'' are used to substitute the phone number
                    512: string passed to the dialing function:
                    513: ``\\T'' is expanded using the ``Dialcodes'' file and
                    514: ``\\D'' is the unexpanded string.
                    515: .P
                    516: .nf
                    517: .tr ~\\
                    518: penril   =W-P   "" ~d > s~p9~c )-W~p~r~ds~p9~c-) y~c : ~E~TP > 9~c OK
                    519: ventel   =&-%   "" ~E~r~e~p $-~E~r~e~p-$ <K~T%%~r>~c ONLINE!
                    520: vadic    =K-K   "" ~005~p *-~005~p-*~005~p-* D~p BER? ~E~T~e ~r~c LINE
                    521: develcon ""     "" ~pr~ps~c est:~007 ~D ~007
                    522: direct
                    523: .fi
                    524: .P
                    525: The \fIpenril\fR entry executes as follows:
                    526: First the phone number argument is translated,
                    527: replacing any ``='' with a ``W'' (wait for dialtone)
                    528: and replacing any ``\-'' with a ``P'' (pause).
                    529: .P
                    530: The handshake given by the remainder of the line works as follows:
                    531: .VL 18 0
                    532: .tr ~"
                    533: .LI ~~
                    534: Wait for nothing.
                    535: .LI ~d
                    536: .tr ~\\
                    537: Delay for 2 seconds.
                    538: .LI >
                    539: Wait for a >.
                    540: .LI  s~p9~c
                    541: send an ``s'', pause for 1 seconds, send a 9,
                    542: send no terminating new-line.
                    543: .LI  )\-W~p~r~ds~p9~c\-)
                    544: wait for a ``)''.
                    545: If it does not arrive, process the string between the ``\-'' characters
                    546: as follows.
                    547: Send a ``W'', pause, send a carriage-return, delay, send an ``s'',
                    548: pause, send ``9'', without a new-line,
                    549: and then wait for the ``)''.
                    550: .LI  y~c
                    551: send a ``y''.
                    552: .LI  :
                    553: wait for a ``:''.
                    554: .LI ~E~TP
                    555: enable echo checking. (From this point on, whenever a character is transmitted,
                    556: will wait for the character to be received before doing anything else.)
                    557: Then send the phone number followed by a penril \fIpause\fR character.
                    558: (The ~Tmeans take the phone number passed as argument and apply
                    559: the ``Dialcodes'' translation and the modem function translation
                    560: specified by field number 2 of this entry.)
                    561: .LI >
                    562: wait for a ``>''.
                    563: .LI 9~c
                    564: send a ``9'' without a new-line.
                    565: .LI OK
                    566: Wait for the string ``OK''.
                    567: .LE
                    568: .P
                    569: As another example, consider  the \fIdevelcon\fR entry:
                    570: The is phone number is the token used by the switch, for example
                    571: the machine name to be connected.)
                    572: .VL 18 0
                    573: .LI ""
                    574: wait for nothing.
                    575: .LI ~pr~ps
                    576: pause, send an ``r'', pause, send an ``s''.
                    577: .LI est:~007
                    578: wait for the string ``est:'' followed by a bell character
                    579: (~007).
                    580: .LI ~T
                    581: send the token passed from the \fIDevices\fR file;
                    582: often the token in the phone number field from the
                    583: .ml
                    584: \fISystems\fR file.
                    585: .LI ~007
                    586: wait for a bell.
                    587: .LE
                    588: .P
                    589: The ``direct'' line above indicates that for direct connections,
                    590: ne negotiation is required.
                    591: .H 3 "System File"
                    592: .P
                    593: Each entry in the \fI/usr/lib/uucp/Systems\fR file represents a system
                    594: that can be called by the local \fBuucp\fR programs.
                    595: In addition, the system can be configured to prevent
                    596: any system that does not appear in this file from
                    597: logging in.
                    598: (This is the default configuration;
                    599: it can be modified by changing ``parms.h'' before
                    600: compilation.)
                    601: More than one line may be present for a particular system;
                    602: the additional lines represent alternative
                    603: communication paths that will be tried in sequential order.
                    604: The fields are described below.
                    605: .VL 18 4
                    606: .LI "\fISystem name\fR"
                    607: Name of the remote system.
                    608: .LI \fITime\fR
                    609: This is a string that indicates the days-of-week
                    610: and times-of-day when the system should
                    611: be called
                    612: (e.g., MoTuTh0800\-1730).
                    613: .P
                    614: The day portion may be a list containing
                    615: \fISu\fR,
                    616: \fIMo\fR,
                    617: \fITu\fR,
                    618: \fIWe\fR,
                    619: \fITh\fR,
                    620: \fIFr\fR,
                    621: \fISa\fR;
                    622: or it may be
                    623: .I Wk
                    624: for any week-day or
                    625: .I Any
                    626: for any day.
                    627: The time should be a range of times (e.g., 0800\-1230).
                    628: If no time portion is specified, any time
                    629: of day is assumed to be allowed for the call.
                    630: Note that a time range that spans 0000 is permitted;
                    631: 0800-0600 means all times are allowed \fIexcept\fR
                    632: times between 6 and 8 am.
                    633: Multiple time fields may be include using a ``,'' separator
                    634: (e.g. Wk1800-0600,Sa,Su).
                    635: An optional subfield is available to specify the minimum time (minutes)
                    636: before a retry following a failed attempt.
                    637: (Note that if this subfield is used, it will override the normal
                    638: exponential backoff algorithm for retry upon failure.)
                    639: This subfield is separated by a ``;''.
                    640: .LI \fICaller\fR
                    641: The available callers are ACU, Micom, Develcon, Sytek.
                    642: .LI \fIClass\fR
                    643: This is usually the line speed for the call (e.g., 300, 1200, Any).
                    644: If the field is not used for a particular entry, a ``\-'' can be used
                    645: as the place holder.
                    646: When the value is ``Any'',
                    647: it means match any speed found for the particular caller.
                    648: If both the Systems and Devices value is ``Any'', then the value is
                    649: taken from the \fIDEFAULT_BAUDRATE\fR constant defined in \fIparms.h\fR.
                    650: .LI \fIPhone\fR
                    651: For autodialers, the phone number is made up of an optional
                    652: alphabetic abbreviation (dialing prefix) and a numeric part.
                    653: The abbreviation should be one that appears in the
                    654: .I "Dialcodes (old name was L-dialcodes)"
                    655: file (e.g., mh1212, boston555\-1212).
                    656: For direct connections, the phone field is ignored.
                    657: (A ``\-'' should be used as a place holder.)
                    658: .P
                    659: For \fINETWORK\fR access as mentioned above
                    660: such as \fISwitch\fR, \fIDevelcon\fR, and \fIMicom\fR,
                    661: the phone field is the token the switch needs to get to the
                    662: particular system\*(EMit is used by the caller functions specified
                    663: in the ``Devices'' file.
                    664: .LI \fILogin\fR
                    665: The login information is given as a series of
                    666: fields and subfields in the format
                    667: .DS I
                    668: [ expect\ \ send ] .\|.\|.
                    669: .DE
                    670: where
                    671: \fIexpect\fR
                    672: is the string expected to be read and
                    673: .I send
                    674: is the string to be sent when the
                    675: .I expect
                    676: string is received.
                    677: This is simimilar processing to the negotiation specified in the
                    678: ``Dialers'' file.
                    679: The expect field may be made up of subfields
                    680: of the form
                    681: .DS I
                    682: expect[\-send\-expect] .\|.\|.
                    683: .DE
                    684: where the
                    685: .I send
                    686: is sent if the prior
                    687: .I expect
                    688: is
                    689: .I not
                    690: successfully read
                    691: and the
                    692: .I expect
                    693: following the
                    694: .I send
                    695: is the next expected string.
                    696: (For example, login--login will expect
                    697: .I login ;
                    698: if it gets it, the program will go on to the next field;
                    699: if it does not get
                    700: .I login ,
                    701: it will send
                    702: .I null
                    703: followed by a new line,
                    704: then expect
                    705: .I login
                    706: again.)
                    707: If no characters are initially expected from the remote
                    708: machine, the string ``""'' (a null string) should be used in the
                    709: first expect field.
                    710: Note that all send fields will be sent followed by a new-line unless
                    711: the send string is terminated with a \\c.
                    712: .sp
                    713: There are two special names available to be sent
                    714: during the login sequence.
                    715: The string
                    716: .I EOT
                    717: will send an EOT character, and the string
                    718: \fIBREAK\fR
                    719: will try to send
                    720: a
                    721: \fIBREAK\fR
                    722: character.
                    723: .LE
                    724: .P
                    725: There are several character strings that cause specific actions
                    726: when they are a part of a string sent during the login sequence.
                    727: .VL 10 2
                    728: .tr ~\\
                    729: .LI ~K
                    730: insert a BREAK.
                    731: .LI ~N
                    732: Send a null character.
                    733: .LI ~b
                    734: Send a backspace character.
                    735: .LI ~c
                    736: If at the end of a string, suppress the new-line that
                    737: is normally sent.
                    738: Ignored otherwise.
                    739: .LI ~d
                    740: Delay two seconds before sending or reading more characters.
                    741: .LI ~n
                    742: Send a new-line character.
                    743: .LI ~p
                    744: insert a pause (1 second).
                    745: .LI ~r
                    746: Send a carrage-return.
                    747: .LI ~s
                    748: Send a space character.
                    749: .LI ~t
                    750: Send a tab character.
                    751: .LI ~~
                    752: Send a ~ character.
                    753: .LI EOT
                    754: Send \fIeot\fR character (actually \fIeot\fR new-line is sent twice).
                    755: .LI BREAK
                    756: Send a break character.
                    757: .LI ~ddd
                    758: Collapse the octal digits (ddd) into
                    759: a single character and send that character.
                    760: .br
                    761: .tr ~~
                    762: .LE
                    763: .P
                    764: These character strings are useful for making \fBuucp\fR
                    765: communicate via direct lines to data switches.
                    766: .P
                    767: A typical entry in the \fISystems\fR file would be
                    768: .DS I
                    769: sys\ \ Any\ \ ACU\ \ 300\ \ mh7654\ \ login\-\-login\ \ uucp\ \ ssword:\ \ word
                    770: .DE
                    771: A \fISystems\fR file entry for a direct connection would be
                    772: .DS I
                    773: hawk\ \ Any\ \ hawk\ \ 9600\ \ \-\ \ login\-\-login\ \ uucp\ \ ssword:\ \ word
                    774: .DE
                    775: The corresponding \fIDevice\fR file entry would be
                    776: .DS I
                    777: hawk\ \ ttyhh\ \ \-\ \ 9600\ \ direct
                    778: .DE
                    779: The ``expect'' algorithm matches all or part of the input
                    780: string as illustrated in the password field above.
                    781: .H 3 "Dialing Prefixes"
                    782: .P
                    783: This file contains the dial-code abbreviations used
                    784: in the
                    785: .I Systems
                    786: file (e.g., py, mh, boston).
                    787: The entry format is
                    788: .DS I
                    789: abb\ \ dial-seq
                    790: .DE
                    791: where
                    792: .I abb
                    793: is the abbreviation and
                    794: .I "dial-seq"
                    795: is the dial sequence to call that location.
                    796: .P
                    797: The line
                    798: .DS I
                    799: py\ \ 165\-
                    800: .DE
                    801: would be set up so that entry py7777 would
                    802: send 165\-7777 to the dial unit.
                    803: .H 3 "Permissions File"
                    804: The Permissions file replaces the USERFILE for uucp.
                    805: (The USERFILE was used in previous version of uucp to specify
                    806: file access permissions).
                    807: Its purpose is to specify the permission that remote sites
                    808: have with respect to login, file access, and command
                    809: execution.
                    810: Options provide for restricting the ability to request files and
                    811: the ability to receive files queued by the local site.
                    812: In addition, an option is available to specify the commands that a
                    813: remote site can execute on the local system.
                    814: .P
                    815: The installation procedure will construct a default file if one does
                    816: not already exist in \fI/usr/lib/uucp/Permissions\fR.
                    817: This default file will provide a high degree of restriction on remote sites.
                    818: A line will be constructed for each login in the \fI/etc/passwd\fR
                    819: file that has \fI/usr/lib/uucp/uucico\fR as the shell field.
                    820: Each line will look like
                    821: .DS CB
                    822:                LOGNAME=nuucp
                    823: .DE
                    824: .P
                    825: It states that login ``nuucp'' has all the default permissions/restrictions:
                    826: .BL
                    827: .LI
                    828: The remote site can send files exclusively to the
                    829: \fI/usr/spool/uucppublic\fR directory tree.
                    830: .LI
                    831: The remote site can \fINOT\fR request to receive any files.
                    832: .LI
                    833: \fINO\fR files that are queued for the remote site will be transferred
                    834: during the present session.
                    835: .LI
                    836: The only commands that can be executed are the defaults.
                    837: (The default commands are set in parms.h.
                    838: The distribution has them set to \fIrmail\fR and \fIrnews\fR.)
                    839: (See appendix IV for full details of the \fIPermissions\fR file setup.)
                    840: .LE
                    841: .H 3 "Maxuuxqts File"
                    842: The \fI/usr/lib/uucp/Maxuuxqts\fR file limits the number of simultaneous \fIuuxqt\fR
                    843: programs running;
                    844: it contains an ASCII number.
                    845: The installation procedure sets the number to two;
                    846: the administrator may want to change this number to meet local needs.
                    847: If you get a lot of traffic from mail or netnews, you may want to increase
                    848: the number to decrease wait time.
                    849: But remember, the more you have running, the higher the load on the system.
                    850: .H 3 "Maxuuscheds File"
                    851: The \fI/usr/lib/uucp/Maxuuscheds\fR file limits the number of simultaneous \fIuusched\fR
                    852: programs running;
                    853: it contains an ASCII number.
                    854: Each \fIuusched\fR running will have one
                    855: \fIuucico\fR associated with it;
                    856: limiting the number will throttle the load on the system.
                    857: The limit should be less than the number of outgoing lines used
                    858: by uucp;
                    859: a smaller number is often desirable.
                    860: The installation procedure sets the number to two;
                    861: the administrator may want to change this number to meet local needs.
                    862: But remember, the more you have running, the higher the load on the system.
                    863: .H 3 "remote.unknown Shell"
                    864: This shell program is called when a remote site that is not in the
                    865: \fISystems\fR file calls in to start a conversation.
                    866: The shell distributed with the system appends the name and time
                    867: information to a file, \fI/usr/spool/uucp/.Admin/Foreign\fR.
                    868: The calling of the shell can be turned off by an option in parms.h.
                    869: In addition, the shell can be modified to meet local needs.
                    870: As distributed, it contains the following:
                    871: .DS I
                    872: FOREIGN=/usr/spool/uucp/.Admin/Foreign
                    873: echo "`date`: call from system $1" >> $FOREIGN
                    874: .P
                    875: Since it is a shell, it can be easily modified.
                    876: For example, it can send mail to the administrator.
                    877: .DE
                    878: .H 3 "uudemon Shells"
                    879: .P
                    880: .H 2 "ADMINISTRATION"
                    881: .P
                    882: The role of the
                    883: \fIuucp\fR
                    884: administrator depends heavily
                    885: on the amount of traffic that enters or leaves a system and
                    886: the quality of the connections that can be made to and from that system.
                    887: For the average system, only a modest amount of traffic (100 to 200 files
                    888: per day) pass through the system and little if any
                    889: intervention with the
                    890: \fIuucp\fR
                    891: automatic cleanup functions is necessary.
                    892: Systems that pass large numbers of files
                    893: (200 to 10,000)
                    894: may require more attention when problems occur.
                    895: The following parts describe the routine administrative
                    896: tasks that must be performed by the administrator
                    897: or are automatically performed by
                    898: the
                    899: \fIuucp\fR
                    900: package.
                    901: The part on problems describes what
                    902: are the most frequent problems and how to effectively
                    903: deal with them.
                    904: .H 3 "Cleanup"
                    905: .P
                    906: The biggest problem
                    907: in a dialup network like
                    908: \fIuucp\fR
                    909: is dealing with the backlog of jobs that cannot
                    910: be transmitted to other systems.
                    911: The following cleanup activities should be routinely performed.
                    912: .H 4 "Cleanup of Undeliverable Jobs"
                    913: .P
                    914: The \fIuustat\fR program should be invoked regularly to give information
                    915: about the status of connection to various machines, and the size and
                    916: age of the queued requests.
                    917: The \fBuudemon.admin\fR shell should be started by \fBcron\fR(1)
                    918: at least once per day\*(EMthis will send the administrator the
                    919: current status.
                    920: Of particular interest are the age (in days)
                    921: of the oldest request in each queue,
                    922: the number of times failure to reach that system has occurred, and
                    923: the reason for failure.
                    924: In addition, the age of the oldest execution request (X. file) is
                    925: also given.
                    926: .P
                    927: Each spool directory will contain some
                    928: X. files, C. files, and D. files.
                    929: When work can not be accomplished, these files should be
                    930: removed.
                    931: The \fBuucleanup\fR program, which is run from
                    932: \fBuudemon.cleanup\fR will provide this function.
                    933: Options to \fBuucleanup\fR specify the age for sending a
                    934: warning message to the requestor and age for deleting the
                    935: various file.
                    936: Note that before deleting, the program tries to figure out
                    937: what the job was (e.g. a mail job)
                    938: and if possible, tries to send it to the receiver, rather than
                    939: the sender.
                    940: If this is not possible, it gets returned to the sender.
                    941: For plain file transfers, the requestor is informed of the
                    942: file name(s), date, and destination of the request.
                    943: .H 4 "Cleanup of the Public Area"
                    944: .P
                    945: In order to keep the local file system from overflowing
                    946: when files are sent to the public area,
                    947: the \fBuudemon.cleanup\fR procedure is set up with a
                    948: \fBfind\fR command to remove any files that are older than 7 days
                    949: and directories that are empty.
                    950: This interval may need to be shortened if
                    951: there is not sufficient space to devote to the public area.
                    952: .P
                    953: Since the spool directories are very dynamic, they may grow
                    954: large before transfers take place, it is a good idea to
                    955: reorganize the structure.
                    956: The best way to do this is to put some code in \fI/etc/rc\fR to 
                    957: be executed once per week.
                    958: For example
                    959: .DS I
                    960: #
                    961: #      clean up /usr/spool/uucp
                    962: #      Most cleanup is now done by uudemon.cleanup
                    963: #      so just do copy out and back
                    964: #
                    965: DY=`date +'%w'`
                    966: HR=`date +'%H'`
                    967: echo "cleanup uucp spool directories"
                    968: echo "FULL CLEANUP ONLY ON MONDAY before 9am "
                    969: if [ $DY -eq 1 -a $HR -lt 9 ]
                    970: then
                    971:     echo "MONDAY--DO FULL CLEANUP!"
                    972:     cd /usr/spool/uucp
                    973:     mkdir ../nuucp
                    974:     chown uucp ../nuucp
                    975:     chgrp uucp ../nuucp
                    976:     find . -print|cpio -pdml ../nuucp
                    977:     cd ..
                    978:     mv uucp ouucp
                    979:     mv nuucp uucp
                    980:     rm -rf ouucp
                    981: fi
                    982: chown uucp /dev/cu[al]*
                    983: chgrp uucp /dev/cu[al]*
                    984: chmod 0644 /dev/cul*
                    985: chmod 0222 /dev/cua*
                    986: 
                    987: #      cleanup uucp LCK files so that a new
                    988: #      process doesn't accidently get a pid
                    989: #      corresponding to a left around LCK file--
                    990: #      thus preventing it from being removed.
                    991: echo "cleanup /usr/spool/locks"
                    992: rm -f /usr/spool/locks/*
                    993: 
                    994: echo "done uucp directory cleanup"
                    995: 
                    996: 
                    997: .DE
                    998: .H 4 "Compaction of Log Files"
                    999: .P
                   1000: This version of \fBuucp\fR has individual log files for each system
                   1001: and each program (e.g. system \fIeagle\fR has a logfile for
                   1002: \fIuucico\fR requests and a logfile for \fIuuxqt\fR execution requests).
                   1003: The \fIuulog\fR shell gives the user access to the information in these
                   1004: files by system name.
                   1005: These files are combined and stored in directory
                   1006: \fI/usr/lib/uucp/.Old\fR whenever \fBuudemon.cleanup\fR
                   1007: is executed.
                   1008: The daemon saves two days files; this can be easily changed by the
                   1009: administrator.
                   1010: If space is a problem, the administrator might consider reducing the
                   1011: number of days the files are kept, or modify the shell to compact
                   1012: the files using the \fBpack\fR command.
                   1013: .H 3 "Polling Other Systems"
                   1014: .P
                   1015: Systems that are passive members of the network
                   1016: must be polled by other systems
                   1017: in order for their files to be sent.
                   1018: This can be arranged by using the
                   1019: \fBuudemon.poll\fR shell.
                   1020: \fBUudemon.poll\fR read the \fI/usr/lib/uucp/Poll\fR file which contains
                   1021: the systems and times to poll them.
                   1022: The lines contain the name of the remote to call followed by a TAB
                   1023: character and then a space separated list of times to poll.
                   1024: For example,
                   1025: .sp
                   1026:        eagle        0 4 8 12 16 20
                   1027: .sp
                   1028: will provide polling of system eagle every four hours.
                   1029: Note that \fBuudemon.poll\fR does not actually do the poll, it merely
                   1030: sets up a polling C. file in the spool directory that will be
                   1031: seen by the scheduler started by \fBuudemon.hour\fR.
                   1032: 
                   1033: .H 3 Problems
                   1034: .P
                   1035: The following sections list the most frequent problems
                   1036: that appear on systems that make heavy use of
                   1037: \fBuucp\fR(1).
                   1038: .H 4 "Out of Space"
                   1039: .P
                   1040: The file system used to spool
                   1041: incoming or outgoing jobs
                   1042: can run out of space and prevent jobs from being spawned
                   1043: or received from remote systems.
                   1044: The inability to receive jobs is the worse of the two conditions.
                   1045: When file space does become available, the system will be
                   1046: flooded
                   1047: with the backlog of traffic.
                   1048: .H 4 "Bad ACU and Modems"
                   1049: .P
                   1050: The ACU and incoming modems
                   1051: occasionally cause problems that make it difficult to contact
                   1052: other systems or to receive files.
                   1053: These problems are usually readily identifiable since
                   1054: the status files accessed by \fBuustat\fR give counts and
                   1055: reasons for contact failure.
                   1056: If a bad line is suspected, it is useful to use
                   1057: the
                   1058: \fBcu\fR(1)
                   1059: command to
                   1060: try calling another system using the suspected line.
                   1061: This method could also be used to check the login/password
                   1062: information and phone number.
                   1063: .H 4 "Administrative Problems"
                   1064: .P
                   1065: Some
                   1066: \fBuucp\fR
                   1067: networks have so many members that it is difficult
                   1068: to keep track of changing passwords,
                   1069: changing phone numbers,
                   1070: or changing logins on remote systems.
                   1071: This can be a very costly problem
                   1072: since ACU's will be tied up calling a system that cannot be reached.
                   1073: .H 2 "DEBUGGING"
                   1074: .P
                   1075: In order to verify that a system on the network can be contacted,
                   1076: the \fBuucico\fR
                   1077: daemon can be invoked from a user's terminal directly.
                   1078: A shell procedure \fBUutry\fR is distributed for this purpose;
                   1079: the administrator will have to install it in an appropriate place.
                   1080: For example, to verify that
                   1081: \fImhtsd\fR
                   1082: can be contacted, try
                   1083: .DS I
                   1084: Uutry mhtsd
                   1085: .DE
                   1086: This will start the transfer daemon (\fBuucico\fR) with a moderate
                   1087: amount of debugging output, putting the output into a temporary
                   1088: file (/tmp/mhtsa) and executing a \fItail -f\fR command so the
                   1089: administrator can hit a BREAK to get back to the shell, while
                   1090: being able to come back at a later time to look at the output.
                   1091: .P
                   1092: If that works, the administrator can attempt to transfer a file
                   1093: while watching the debugging output.
                   1094: Procede as follows
                   1095: .DS I
                   1096: uucp -r some\-file mhtsd!~/some\-name
                   1097: .DE
                   1098: This will queue a job but not start the transfer daemon.
                   1099: Now proceed as before using \fBUutry\fR.
                   1100: If any of these steps fail, a support person may be needed to
                   1101: diagnose the problem.
                   1102: The output of the above steps will make it easier.
                   1103: .P
                   1104: The file \fI/usr/spool/uucp/.Admin/errors\fR
                   1105: contains error indications,
                   1106: conditions that causes one of the \fBuucp\fR programs to abort
                   1107: (\fIASSERT\fR errors).
                   1108: An explanation of these is given in
                   1109: in Appendix II along with an explanation of the messages one
                   1110: can see as output from \fBuustat -q\fR.
                   1111: Most of these will never occur and indicate that something is wrong
                   1112: with your system or the \fBuucp\fR software.
                   1113: However, the \fIPKXSTART\fR will occur and generally means that the
                   1114: other side aborted during a conversation in a non recoverable way;
                   1115: these can be generally ignored.

unix.superglobalmegacorp.com

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