Annotation of researchv10no/cmd/uucp/doc/admin/uucp.D, revision 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.