Annotation of researchv10dc/vol2/uucp/admin.ms, revision 1.1

1.1     ! root        1: .so ../ADM/mac
        !             2: .XX uucp 563 "Uucp Administration"
        !             3: .ds ut \(<-\h'-3p'\v'-3p'\(sp\v'+3p'
        !             4: ." constant width bold, revert to previous font for second arg, if any
        !             5: ."
        !             6: .de cB
        !             7: \&\f(CB\\$1\fP\\$2
        !             8: ..
        !             9: ."
        !            10: ." constant width, revert to previous font for second arg, if any
        !            11: ."
        !            12: .de cW
        !            13: \&\f(CW\\$1\fP\\$2
        !            14: ..
        !            15: ."
        !            16: ." constant width in quotes, revert to previous font for second arg, if any
        !            17: ."
        !            18: .de qC
        !            19: \&``\f(CW\\$1\fP''\\$2
        !            20: ..
        !            21: ."
        !            22: ." how do you spell UUCP?
        !            23: ."
        !            24: .ds uU \&\fIuucp\fP
        !            25: .ds uU \&\fIUucp\fP
        !            26: ."
        !            27: ." how do you spell ASCII?
        !            28: ."
        !            29: .ds aS \&\fR\s-1ASCII\s0\fP
        !            30: ."
        !            31: ."
        !            32: ." Command name in text, revert to previous font for second arg, if any
        !            33: ."
        !            34: .de cN
        !            35: \&\f2\\$1\fP\\$2
        !            36: ..
        !            37: ."
        !            38: ." Option letter in text, revert to previous font for second arg, if any
        !            39: ."
        !            40: .de oP
        !            41: \&\f(CW\\$1\fP\\$2
        !            42: ..
        !            43: ."
        !            44: ." File name in text, revert to previous font for second arg, if any
        !            45: ."
        !            46: .de fN
        !            47: \&\f(CW\s-1\\$1\s0\fP\\$2
        !            48: ..
        !            49: .de FG
        !            50: .ce
        !            51: \fBFigure\ \\$1.\fP \\$2
        !            52: ..
        !            53: .de TB
        !            54: .ce
        !            55: \fBTable\ \\$1.\fP \\$2
        !            56: ..
        !            57: .nr dP 2
        !            58: .nr dV 3p
        !            59: .TL
        !            60: Uucp Administration
        !            61: .AU
        !            62: David A. Nowitz
        !            63: .AI
        !            64: .MH
        !            65: .AB
        !            66: This describes the setup and administration of the \*(uU system
        !            67: shipped with System V
        !            68: (also known as Honey Danber).
        !            69: .AE
        !            70: .2C
        !            71: .NH 1 
        !            72: Introduction
        !            73: .PP
        !            74: This document describes the administration of the \*(uU system.
        !            75: Administrators should be familiar with the
        !            76: manual pages for each of the \*(uU related commands.
        !            77: .NH 2 
        !            78: Extent of the Network
        !            79: .PP
        !            80: Some basic decisions about
        !            81: access
        !            82: to processors in the network must be made
        !            83: before attempting to set up the configuration files.
        !            84: If an administrator has control over only one processor
        !            85: and an existing
        !            86: network is being joined,
        !            87: then the administrator must decide what level of access should
        !            88: be granted to other systems.
        !            89: The other members of the network must make similar decisions for the new system.
        !            90: The
        !            91: .UX
        !            92: system's
        !            93: .I password
        !            94: mechanism is
        !            95: used to grant access to other systems.
        !            96: The file
        !            97: .fN /usr/lib/uucp/Permissions
        !            98: provides various permissions and restrictions for file system access
        !            99: and command execution from remote machines,
        !           100: and the file
        !           101: .fN /usr/lib/uucp/Systems
        !           102: on the local processor determines the
        !           103: systems on the network that can be reached directly.
        !           104: .PP
        !           105: When setting up more than one processor,
        !           106: the administrator has control of a larger portion
        !           107: of the network and can make more decisions about the
        !           108: setup.
        !           109: For example, the network can be set up as a
        !           110: private
        !           111: network
        !           112: where only those machines under the direct control of the administrator
        !           113: can access each other.
        !           114: Granting
        !           115: no
        !           116: access to machines outside the network can be done if security
        !           117: is paramount;
        !           118: however, this is usually impractical.
        !           119: Limited access can be granted to outside machines by each
        !           120: of the systems
        !           121: on the
        !           122: private
        !           123: network.
        !           124: Alternatively, access to/from the outside
        !           125: world can be confined to only one processor.
        !           126: This is frequently done to minimize the effort in keeping
        !           127: access information (passwords, phone numbers, etc.)
        !           128: updated and to localize the security holes
        !           129: for the private network.
        !           130: .NH 2 
        !           131: Hardware
        !           132: .PP
        !           133: There are several networks that are supported
        !           134: with internal interface routines:
        !           135: .IP 1. 3
        !           136: Direct connection using a null modem.
        !           137: .IP 2.
        !           138: Connection over the Direct Distance Dialing (DDD) network
        !           139: using various dialers (e.g. AT&T, Hayes, Ventel).
        !           140: .IP 3.
        !           141: Connection using a DATAKIT\*(tm VCS.
        !           142: .IP 4.
        !           143: UNET\(em3COM Ethernet\*(tm network.
        !           144: .IP 5.
        !           145: TCP
        !           146: .IP 6.
        !           147: Sytek
        !           148: .IP 7.
        !           149: AT&T Transport Layer Interface networks
        !           150: .PP
        !           151: Networks that require only a single line, asynchronous connection can
        !           152: be set up using the 
        !           153: .fN Dialers
        !           154: file.
        !           155: .1C
        !           156: .KF
        !           157: .TS
        !           158: center ;
        !           159: |c| c|
        !           160: |lfCW|  l| .
        !           161: _
        !           162: program        description
        !           163: =
        !           164: uucp   File transfer command
        !           165: uux    Remote execution command
        !           166: uucico The \*(uU file transfer program
        !           167: uustat Network status command
        !           168: uusched        File transfer daemon scheduler
        !           169: uucheck        \*(uU system files, directories, and Permissions file checker
        !           170: uucleanup      Spool directories cleanup program
        !           171: uuxqt  Remote execution program
        !           172: uugetty        T{
        !           173: .fi
        !           174: .ll 4i
        !           175: \f(CWgetty\fP that can be used for lines/modems that are to
        !           176: work as dialin and dialout ports
        !           177: T}
        !           178: uulog  Shell program for looking at the log files
        !           179: Uutry  T{
        !           180: .fi
        !           181: .ll 4i
        !           182: Shell program used to try a remote
        !           183: system with debugging options
        !           184: T}
        !           185: uudemon.cleanup        T{
        !           186: .fi
        !           187: .ll 4i
        !           188: Shell program started by
        !           189: .cN cron
        !           190: to clean up \*(uU directories.
        !           191: T}
        !           192: uudemon.hour   T{
        !           193: .fi
        !           194: .ll 4i
        !           195: Shell program, started by
        !           196: .cN cron
        !           197: used to start the file transfer scheduler and
        !           198: the command execution program
        !           199: T}
        !           200: uudemon.admin  T{
        !           201: .fi
        !           202: .ll 4i
        !           203: Shell program, started by
        !           204: .cN cron
        !           205: that sends data to the uucp administrator
        !           206: giving information about the status of the \*(uU system
        !           207: T}
        !           208: uudemon.poll   T{
        !           209: .fi
        !           210: .ll 4i
        !           211: Shell program, started by
        !           212: .cN cron
        !           213: is used for periodic polling of remote systems
        !           214: T}
        !           215: _
        !           216: .TE
        !           217: .SP 1
        !           218: .......
        !           219: .ce
        !           220: .TB 1 "Uucp System Programs"
        !           221: .SP 1
        !           222: .KE
        !           223: .KF bottom
        !           224: .PS
        !           225: scale=100
        !           226: define m0 |
        !           227: [ box invis ht 24 wid 80 with .sw at 0,0
        !           228: arc from 0,18 to 80,18 at 40,58
        !           229: ] |
        !           230: 
        !           231: define m1 |
        !           232: [ box invis ht 106 wid 80 with .sw at 0,0
        !           233: ellipse ht 48 wid 80 at 40,82
        !           234: m0 with .nw at 0,24
        !           235: line  from 0,82 to 0,18 
        !           236: line  from 80,82 to 80,18 
        !           237: ] |
        !           238: 
        !           239: define m2 |
        !           240: [ box invis ht 48 wid 88 with .sw at 0,0
        !           241: box ht 48 wid 88 with .nw at 0,48 
        !           242: "\fR\s18\&uucico\f1\s0" at 48,19
        !           243: ] |
        !           244: 
        !           245: define m3 |
        !           246: [ box invis ht 48 wid 88 with .sw at 0,0
        !           247: box ht 48 wid 88 with .nw at 0,48 
        !           248: "\fR\s18\&uuxqt\f1\s0" at 44,19
        !           249: ] |
        !           250: 
        !           251: define m4 |
        !           252: [ box invis ht 48 wid 88 with .sw at 0,0
        !           253: box ht 48 wid 88 with .nw at 0,48 
        !           254: "\fR\s18\&uux\f1\s0" at 40,23
        !           255: ] |
        !           256: 
        !           257: define m5 |
        !           258: [ box invis ht 48 wid 88 with .sw at 0,0
        !           259: "\fR\s18\&uucp\f1\s0" at 44,23
        !           260: box ht 48 wid 88 with .nw at 0,48 
        !           261: ] |
        !           262: 
        !           263: box invis ht 240 wid 504 with .sw at 0,0
        !           264: box ht 240 wid 504 with .nw at 0,240 
        !           265: line -> from 256,128 to 328,72 
        !           266: line <-> from 256,144 to 296,184 
        !           267: "\fR\s12\&file transfer\f1\s0" at 444,133
        !           268: line -> from 112,88 to 176,120 
        !           269: line -> from 112,176 to 176,136 
        !           270: line -> from 360,136 to 448,112 
        !           271: line  from 392,136 to 360,136 
        !           272: line  from 336,160 to 392,136 
        !           273: "\fR\s18\&spool\f1\s0" at 216,115
        !           274: m5 with .nw at 24,200
        !           275: m4 with .nw at 24,112
        !           276: m1 with .nw at 176,192
        !           277: m3 with .nw at 312,72
        !           278: m2 with .nw at 296,208
        !           279: .PE
        !           280: .FG 1 "\*(UU transfer and remote execution programs"
        !           281: .KE
        !           282: .2C
        !           283: .NH 1 
        !           284: Uucp Software
        !           285: .PP
        !           286: Table 1 is a summary of the \*(uU System Program.
        !           287: Figure 1
        !           288: illustrates the programs that are
        !           289: used to process user requests.
        !           290: The
        !           291: .cN uucp
        !           292: and
        !           293: .cN uux
        !           294: commands queue users' requests:
        !           295: .cN uucp
        !           296: for file transfers,
        !           297: and
        !           298: .cN uux
        !           299: for requests for remote execution.
        !           300: (\c
        !           301: .cN Uux
        !           302: is most often invoked from within the
        !           303: .cN mail
        !           304: command.)
        !           305: .cN Uucico
        !           306: takes care of the file transfers between machines.
        !           307: Remote execution jobs are transferred by
        !           308: .cN uucico
        !           309: and executed by the
        !           310: .cN uuxqt
        !           311: program.
        !           312: .1C
        !           313: .KF
        !           314: .PS
        !           315: scale=100
        !           316: define t169 |
        !           317: [ box invis ht 38 wid 66 with .sw at 0,0
        !           318: "\s12\&Scan for\f1\s0" at 33,29
        !           319: "\fR\s12\&Work\f1\s0" at 33,10
        !           320: ] |
        !           321: 
        !           322: define t166 |
        !           323: [ box invis ht 38 wid 130 with .sw at 0,0
        !           324: "\fR\s12\&Connect to\f1\s0" at 65,29
        !           325: "\fR\s12\&Remote Machine\f1\s0" at 65,10
        !           326: ] |
        !           327: 
        !           328: define t170 |
        !           329: [ box invis ht 38 wid 62 with .sw at 0,0
        !           330: "\fR\s12\&Start\f1\s0" at 31,29
        !           331: "\fR\s12\&Protocol\f1\s0" at 31,10
        !           332: ] |
        !           333: 
        !           334: define t171 |
        !           335: [ box invis ht 38 wid 66 with .sw at 0,0
        !           336: "\fR\s12\&File\f1\s0" at 33,29
        !           337: "\fR\s12\&Transfer\f1\s0" at 33,10
        !           338: ] |
        !           339: 
        !           340: define t184 |
        !           341: [ box invis ht 56 wid 112 with .sw at 0,0
        !           342: "\fR\s12\&establish\f1\s0" at 56,47
        !           343: "\fR\s12\&communication\f1\s0" at 56,28
        !           344: "\fR\s12\&channel\f1\s0" at 56,9
        !           345: ] |
        !           346: 
        !           347: define t170 |
        !           348: [ box invis ht 38 wid 62 with .sw at 0,0
        !           349: "\fR\s12\&Start\f1\s0" at 31,29
        !           350: "\fR\s12\&Protocol\f1\s0" at 31,10
        !           351: ] |
        !           352: 
        !           353: define t171 |
        !           354: [ box invis ht 38 wid 66 with .sw at 0,0
        !           355: "\fR\s12\&File\f1\s0" at 33,29
        !           356: "\fR\s12\&Transfer\f1\s0" at 33,10
        !           357: ] |
        !           358: 
        !           359: define t169 |
        !           360: [ box invis ht 38 wid 66 with .sw at 0,0
        !           361: "\fR\s12\&Scan for\f1\s0" at 33,29
        !           362: "\fR\s12\&Work\f1\s0" at 33,10
        !           363: ] |
        !           364: 
        !           365: define m0 |
        !           366: [ box invis ht 48 wid 160 with .sw at 0,0
        !           367: box ht 48 wid 160 with .nw at 0,48 
        !           368: t169 with .nw at 47,40
        !           369: ] |
        !           370: 
        !           371: define m1 |
        !           372: [ box invis ht 48 wid 160 with .sw at 0,0
        !           373: box ht 48 wid 160 with .nw at 0,48 
        !           374: t166 with .nw at 15,40
        !           375: ] |
        !           376: 
        !           377: define m2 |
        !           378: [ box invis ht 48 wid 160 with .sw at 0,0
        !           379: box ht 48 wid 160 with .nw at 0,48 
        !           380: t170 with .nw at 45,40
        !           381: ] |
        !           382: 
        !           383: define m3 |
        !           384: [ box invis ht 48 wid 160 with .sw at 0,0
        !           385: t171 with .nw at 47,40
        !           386: box ht 48 wid 160 with .nw at 0,48 
        !           387: ] |
        !           388: 
        !           389: define m4 |
        !           390: [ box invis ht 240 wid 160 with .sw at 0,0
        !           391: m0 with .nw at 0,240
        !           392: m1 with .nw at 0,176
        !           393: m2 with .nw at 0,112
        !           394: m3 with .nw at 0,48
        !           395: ] |
        !           396: 
        !           397: define m5 |
        !           398: [ box invis ht 240 wid 160 with .sw at 0,0
        !           399: box ht 48 wid 160 with .nw at 0,176 
        !           400: m2 with .nw at 0,112
        !           401: m3 with .nw at 0,48
        !           402: m0 with .nw at 0,240
        !           403: ] |
        !           404: 
        !           405: box invis ht 368 wid 576 with .sw at 0,0
        !           406: box ht 368 wid 576 with .nw at 0,368 
        !           407: box ht 272 wid 192 with .nw at 32,336 dashed
        !           408: m4 with .nw at 48,320
        !           409: t184 with .nw at 232,289
        !           410: line  from 240,224 to 352,208 
        !           411: line  from 256,232 to 240,224 
        !           412: line  from 208,240 to 256,232 
        !           413: line <-> from 208,104 to 368,104 
        !           414: "\fR\s14\&UUCICO\f1\s0" at 132,31
        !           415: "\fR\s14\&UUCICO\f1\s0" at 448,31
        !           416: box ht 272 wid 192 with .nw at 352,336 dashed
        !           417: m5 with .nw at 368,320
        !           418: .PE
        !           419: .FG 2 "\*(uU file transfer functions"
        !           420: .KE
        !           421: .2C
        !           422: .PP
        !           423: Figure 2
        !           424: illustrates the structure of
        !           425: .cN uucico ,
        !           426: the program that performs the communication with remote systems.
        !           427: .NH 1 
        !           428: \f(CB/etc/passwd\fP
        !           429: .PP
        !           430: To allow remote systems to call
        !           431: the local system, password entries must be made
        !           432: for any \*(uU
        !           433: logins.
        !           434: An example follows.
        !           435: (In this and other examples to come,
        !           436: the text must be on one physical line but is too long
        !           437: for our column width.
        !           438: A line break marked by \*(cr is only for readability.)
        !           439: .P1 0
        !           440: nuucp:zaaAAaaa:6:1:Admin:   \*(cr
        !           441:        /usr/spool/uucppublic:   \*(cr
        !           442:        /usr/lib/uucp/uucico
        !           443: .P2
        !           444: Note that the
        !           445: .cN uucico
        !           446: program is used for the
        !           447: shell,
        !           448: and the \*(uU public directory
        !           449: is used as the working directory.
        !           450: .PP
        !           451: There must also be an entry in the
        !           452: .fN /etc/passwd
        !           453: file for a \*(uU
        !           454: administrative
        !           455: login.
        !           456: This login is the owner of all the \*(uU
        !           457: object and spooled data files and is usually ``uucp''.
        !           458: For example, the following is a entry in
        !           459: .fN /etc/passwd
        !           460: for this administrative login:
        !           461: .P1 0
        !           462: uucp:zAvLCKp:5:1:UUCP.Admin:/usr/lib/uucp:
        !           463: .P2
        !           464: ........
        !           465: .NH 1 
        !           466: \f(CB/etc/inittab\fP
        !           467: .PP
        !           468: After the ports are set up, entries should be put into
        !           469: .fN /etc/inittab
        !           470: corresponding to the devices.
        !           471: Ports can
        !           472: configured for outgoing traffic only, in which case, the action field of
        !           473: the
        !           474: .fN /etc/inittab
        !           475: entry should be ``off''.
        !           476: .P1 0
        !           477: 10:off:/etc/getty tty10 1200
        !           478:        # outgoing ACU entry
        !           479: .P2
        !           480: .PP
        !           481: Bi-directional traffic can be set up using the
        !           482: .CW /usr/lib/uucp/uugetty
        !           483: command.
        !           484: .P1 0
        !           485: 10:respawn:/usr/lib/uucp/uugetty -r -t60 \*(cr
        !           486:        tty10 1200H # bidirectional
        !           487: .P2
        !           488: Note here that in the speed field there is an H after the speed.
        !           489: This
        !           490: corresponds to the 1200H
        !           491: .fN /etc/gettydefs
        !           492: entry that does not
        !           493: set HUPCL in the initial flags for the line.
        !           494: If the HUPCL flag was set, some modems would drop DTR
        !           495: causing the
        !           496: .cN uugetty
        !           497: to exit.
        !           498: Here are two typical
        !           499: .fN /etc/gettydefs
        !           500: entries for the 1200H and 1200:
        !           501: .P1 0
        !           502: 1200H# B1200 # B1200 SANE IXANY TAB3 \*(cr
        !           503:        HUPCL #login: #300H
        !           504: 1200# B1200 HUPCL # B1200 SANE IXANY \*(cr
        !           505:        TAB3 #login: #300
        !           506: .P2
        !           507: In addition, the
        !           508: .oP \-r
        !           509: option is needed on the
        !           510: .cN uugetty
        !           511: command to inhibit the echo of the
        !           512: .cW login
        !           513: prompt until a character is read;
        !           514: this is because many modems bring up
        !           515: DTR as soon as the
        !           516: .cN open
        !           517: is executed and the
        !           518: .cN uugetty
        !           519: would not be able to determine
        !           520: whether the calling incoming or outgoing.
        !           521: Also, if there is a direct line with
        !           522: .cN uugetty 's
        !           523: running
        !           524: on both sides, the
        !           525: .cW login
        !           526: prompt would be read by both sides as
        !           527: a user attempting to login and would get into a loop.
        !           528: .NH 1 
        !           529: Setting Up ACU Devices
        !           530: .PP
        !           531: Create a device in the
        !           532: .fN /dev
        !           533: directory corresponding to the
        !           534: port of the ACU.
        !           535: .P1 0
        !           536: mknod /dev/tty10 c 1 6
        !           537: .P2
        !           538: will create the ACU device on
        !           539: .fN tty10
        !           540: that has major and minor
        !           541: device numbers 1 and 6.
        !           542: This will correspond to the following entry
        !           543: in
        !           544: .fN /usr/lib/uucp/Devices
        !           545: .P1 0
        !           546: ACU tty10 - 1200 att4024
        !           547: .P2
        !           548: for an AT&T 4024 modem on tty10.
        !           549: .PP
        !           550: Next, the access modes and ownership of the device should be changed.
        !           551: .P1 0
        !           552: chown uucp /dev/tty10
        !           553: chmod 644 /dev/tty10
        !           554: .P2
        !           555: .PP
        !           556: For old Western Electric 212/801 type modems,
        !           557: an additional device is required\(emthe 801
        !           558: device.
        !           559: Create a device for the 212 modem line.
        !           560: .P1 0
        !           561: mknod /dev/cul1 c 1 6
        !           562: chown uucp /dev/cul1
        !           563: chmod 644 /dev/cul1
        !           564: .P2
        !           565: Next, create a separate device for the 801 dialer.
        !           566: .P1 0
        !           567: mknod /dev/cua1 c 7 1
        !           568: chown uucp /dev/cul1
        !           569: chmod 644 /dev/cua1
        !           570: .P2
        !           571: The corresponding
        !           572: .fN /usr/lib/uucp/Devices
        !           573: entry for this ACU would be
        !           574: .P1 0
        !           575: ACU cul1 cua1 1200 801
        !           576: .P2
        !           577: Note that for 801/212 type modems, only one speed is allowed;
        !           578: it can not be configured to work at both speeds when calling out.
        !           579: .NH 1 
        !           580: \f(CBDevices\fP File
        !           581: .PP
        !           582: The file
        !           583: .fN /usr/lib/uucp/Devices
        !           584: contains the device information needed
        !           585: for calling other systems.
        !           586: The format of the file is
        !           587: .ce
        !           588: \fICaller Line Line2 Class Token-Pairs\fP
        !           589: .PP
        !           590: The
        !           591: .I Token-Pairs
        !           592: field contains dialer names and
        !           593: arguments that are passed to these dialer
        !           594: routines.
        !           595: Dialers can either be built-in or defined in the
        !           596: .fN /usr/lib/uucp/Dialers
        !           597: file.
        !           598: .PP
        !           599: .I Caller :
        !           600: The keywords available in this field are shown below.
        !           601: .KF
        !           602: .TS
        !           603: center;
        !           604: |c| c|
        !           605: |lFCW| lw(1.7i)|.
        !           606: _
        !           607: keyword        meaning
        !           608: =
        !           609: Direct T{
        !           610: hard-wired line used by cu for direct connections
        !           611: T}
        !           612: ACU    T{
        !           613: make the connection through an autodialer
        !           614: T}
        !           615: \fINETWORK\fP  T{
        !           616: .fi
        !           617: \fRmake the connection through a switch or network
        !           618: such as
        !           619: Sytek, TCP, DK
        !           620: T}
        !           621: \fISYSTEM-NAME\fP      T{
        !           622: .fi
        !           623: for hard-wired connections to a particular system where
        !           624: \fISYSTEM-NAME\fP is replaced by the name of the system
        !           625: T}
        !           626: \fIOTHER\fP    T{
        !           627: .fi
        !           628: other names that you define
        !           629: (e.g.
        !           630: .cW DKACU
        !           631: can be set up as an
        !           632: .cW ACU
        !           633: on a Datakit network).
        !           634: T}
        !           635: _
        !           636: .TE
        !           637: .KE
        !           638: .PP
        !           639: .I Line :
        !           640: This data transmission device
        !           641: (.e.g.
        !           642: .fN tty10
        !           643: for device
        !           644: .fN /dev/tty10 ).
        !           645: .PP
        !           646: .I Line2 :
        !           647: If the ACU keyword is specified and the device type is 801,
        !           648: this field contains the
        !           649: device name of the 801 dialing device ACU.
        !           650: Otherwise, the field is ignored; however, a place-holder must be
        !           651: used in this field (use
        !           652: .qC -
        !           653: character for the place-holder).
        !           654: .PP
        !           655: .I Class :
        !           656: For ACU, this can be just the speed,
        !           657: or it can contain a letter and speed (e.g. D1200, C1200
        !           658: to differentiate between classes of dialers: Centrex, Dimension.
        !           659: These names can be used in the
        !           660: .fN Systems
        !           661: file to select specific types of
        !           662: .cW ACU s
        !           663: for connections to some systems).
        !           664: Some devices can be used at any speed, so the keyword
        !           665: .qC Any
        !           666: is used\(emthis line will match any speed requested in Systems.
        !           667: Note:
        !           668: If this field is
        !           669: .qC Any
        !           670: and the Systems class field is
        !           671: .qC Any
        !           672: then the speed is taken from the default set in
        !           673: .fN parms.h
        !           674: by the
        !           675: .CW DEFAULT_BAUDRATE
        !           676: constant.
        !           677: .PP
        !           678: .I Token-Pairs :
        !           679: The rest of the line contains pairs of
        !           680: .I dialers
        !           681: and
        !           682: .I tokens .
        !           683: Each pair represents a
        !           684: .I dialer
        !           685: function and an argument to
        !           686: pass to that function.
        !           687: .KF
        !           688: .TS
        !           689: center;
        !           690: |c| c|
        !           691: |l| lw(2i)|.
        !           692: _
        !           693: dialer function
        !           694: =
        !           695: 801    T{
        !           696: Western Electric 801/212 or 801/103 combinations
        !           697: T}
        !           698: 212    T{
        !           699: Western Electric 801/212 or 801/103 combinations
        !           700: T}
        !           701: Dialout        T{
        !           702: Dialing using the dialout(3) routine
        !           703: T}
        !           704: TCP    TCP Network
        !           705: Unetserver     3COM Ethernet\*(tm network
        !           706: DK     T{
        !           707: Datakit with Multiplex Interface
        !           708: T}
        !           709: Sytek  Sytek Network
        !           710: TLI    T{
        !           711: AT&T Transport Layer Network without Streams
        !           712: T}
        !           713: TLIS   T{
        !           714: AT&T Transport Layer Network with Streams
        !           715: T}
        !           716: _
        !           717: .TE
        !           718: .TB 2 "Built-in Dialers"
        !           719: .KE
        !           720: .PP
        !           721: Table 2 provides the names of the built-in
        !           722: .I dialer
        !           723: routines.
        !           724: All other
        !           725: .I dialer
        !           726: functions are defined in the
        !           727: .fN /usr/lib/uucp/Dialers
        !           728: file.
        !           729: .PP
        !           730: The second field in the
        !           731: .cW Token-pair
        !           732: is the argument to be passed to the
        !           733: .I dialer
        !           734: function\(emthis is typically the destination phone number.
        !           735: Two special tokens are used to represent the phone number
        !           736: field from the
        !           737: .fN Systems
        !           738: file:
        !           739: .qC \eD
        !           740: is the phone number field as it appears in the
        !           741: .fN Systems
        !           742: file while
        !           743: .qC \eT
        !           744: is the phone number after being processed using the
        !           745: .fN Dialcodes
        !           746: file to expand the phone number prefix.
        !           747: If the last token on the
        !           748: .fN Devices
        !           749: file line is the phone number,
        !           750: it can be omitted;
        !           751: .qC \eD
        !           752: is assumed, since routines defined in the
        !           753: .fN Dialers
        !           754: file
        !           755: can use
        !           756: .qC \eT
        !           757: to do the expansion
        !           758: and all internal routines will
        !           759: do the expansion.
        !           760: .PP
        !           761: For cases where dialout modems are on a networks,
        !           762: the
        !           763: .cW Caller
        !           764: will be
        !           765: .cW ACU
        !           766: and the
        !           767: .cW Token-Pairs
        !           768: will be the token given to the
        !           769: network routine to attach to the dialout modem.
        !           770: These two fields will be followed by another
        !           771: .cW Token-Pair ,
        !           772: the dialer routine name (e.g.
        !           773: .cW ventel )
        !           774: and the phone number
        !           775: (e.g. 
        !           776: .qC \eD
        !           777: or 
        !           778: .qC \eT ).
        !           779: If the last token on the line is
        !           780: .qC \eD
        !           781: it may be omitted.
        !           782: .PP
        !           783: The following examples
        !           784: illustrate various types of connections:
        !           785: .P1 0
        !           786: ACU     cul0  cua0  1200  801
        !           787: ACU     cul1  cua1   300  801
        !           788: ACU     vn0   -     1200  ventel
        !           789: ACU     vn0   -      300  ventel
        !           790: ACU     vd0   -     1200  vadic
        !           791: ACU     vd0   -    V1200  vadic
        !           792: ACU     at1   -     2400  att4024
        !           793: ACU     at1   -     1200  att4024
        !           794: Direct  at1   -     1200  att4024
        !           795: .P2
        !           796: .PP
        !           797: .fN /dev/cul0
        !           798: and
        !           799: .fN /dev/cul1
        !           800: are 212 modems (\c
        !           801: .fN /dev/cul1
        !           802: may be a 103 type),
        !           803: with 801s at
        !           804: .fN /dev/cua0
        !           805: and
        !           806: .fN /dev/cua1
        !           807: respectively;
        !           808: .fN /dev/vn0
        !           809: is hooked to a ventel and can be used
        !           810: at 1200 or 300 baud, and
        !           811: .fN /dev/vd0
        !           812: is hooked to a vadic.
        !           813: There is also a att4024 dialer on
        !           814: .fN /dev/at1 ;
        !           815: it can be used at either 2400 or 1200 baud.
        !           816: The
        !           817: .I Direct
        !           818: line is present for
        !           819: .cN cu
        !           820: to have direct access to the modem on
        !           821: .fN /dev/at1 .
        !           822: .PP
        !           823: .P1 0
        !           824: ACU  culd0  -  Any  datakit dial att4024
        !           825: ACU  culd1  -  Any  datakit dial att4024
        !           826: ACU  -      0  Any  DK      dial.\eT
        !           827: .P2
        !           828: .PP
        !           829: There are two RS-232 Datakit ports available and at least
        !           830: two
        !           831: AT&T 4024 modems attached to the network.
        !           832: The
        !           833: .I datakit
        !           834: .fN Dialers
        !           835: line will be accessed with the argument
        !           836: .cW dial .
        !           837: The
        !           838: .I att4024
        !           839: .fN Dialers
        !           840: line will be used with the
        !           841: telephone number
        !           842: from the
        !           843: .fN Systems
        !           844: file after it is processed using the
        !           845: .fN Dialcodes
        !           846: file prefix processing.
        !           847: The last line in the above example uses the
        !           848: internal, Datakit multiplexed interface routine.
        !           849: Here, the
        !           850: telephone number must be translated,
        !           851: using the
        !           852: .qW \eT
        !           853: token, before
        !           854: being passed to the
        !           855: .cW DK
        !           856: routine.
        !           857: .PP
        !           858: .P1 0
        !           859: raven   ttyab  -  9600  direct
        !           860: Direct  ttyab  -  9600  direct
        !           861: .P2
        !           862: .PP
        !           863: There is a direct line\(em\c
        !           864: .fN ttyab
        !           865: has a null-modem connection to
        !           866: system
        !           867: .I raven .
        !           868: The
        !           869: .I Direct
        !           870: line is for
        !           871: .cN cu
        !           872: access to the line.
        !           873: .NH 1 
        !           874: \f(CBDialers\fP File
        !           875: .PP
        !           876: Each line in the
        !           877: .fN Dialers
        !           878: file
        !           879: is used to specify
        !           880: the handshaking that should occur before it
        !           881: is made available for user data.
        !           882: Each line contains the following fields:
        !           883: .ce
        !           884: \fIDialer Translate Handshake\fP
        !           885: .PP
        !           886: .I Dialer :
        !           887: Identifies the dialer, and is used
        !           888: to match the first token of the
        !           889: .cW Token-pairs
        !           890: field in the
        !           891: .fN Devices
        !           892: file
        !           893: for those dialers that are not built-in functions
        !           894: specified in Table 2.
        !           895: .PP
        !           896: .I Translate :
        !           897: Specifies the ``wait-for-dialtone'' and ``pause'' characters
        !           898: that are used for the particular dialer.
        !           899: (For the phone number in the
        !           900: .fN Systems
        !           901: file, the
        !           902: .CW =
        !           903: is used for
        !           904: ``wait-for-dialtone'' and
        !           905: .CW -
        !           906: is used for
        !           907: ``pause''.)
        !           908: The string contains four characters, two pairs.
        !           909: The first pair starts with
        !           910: .CW =
        !           911: and specifies the ``wait-for-dialtone'' character;
        !           912: the second pair starts with
        !           913: .CW -
        !           914: and specifies the 
        !           915: ``pause'' character.
        !           916: The second character of each pair is the corresponding
        !           917: character for the dialer.
        !           918: If no translation is required, a pair of double quotes
        !           919: is used for a place-holder.
        !           920: .PP
        !           921: .I Handshaking :
        !           922: The sequence of \*(aS strings
        !           923: that are transmitted and expected,
        !           924: and is used to dial a phone number using an \*(aS dialer
        !           925: (such as an AT&T 4024) or connect via a dataswitch to
        !           926: another system on the dataswitch.
        !           927: (See the ``Login-script'' part of the
        !           928: ``Systems'' section below for an explanation of expect-send fields.)
        !           929: Figure 3 shows some sample lines.
        !           930: .1C
        !           931: .KF
        !           932: .P1 20n
        !           933: att4024 =+-,   "" atzod,o12=y,o4=n\er\ec \e006 atT\eT\er\ec ed
        !           934: ventel  =&-%   "" \er\ep\er\ec $ K call: \eT%% Online!
        !           935: direct
        !           936: datakit ""     "" \er TION: \eD
        !           937: hayes   =,-,   "" \edAT\er\ec OK\er \eEATDT\eT\er\ec CONNECT
        !           938: .P2
        !           939: .FG 3 "Sample Dialer Lines"
        !           940: .KE
        !           941: .2C
        !           942: .PP
        !           943: The escape characters, those beginning with
        !           944: .qC \e ,
        !           945: have the same
        !           946: meaning as specified in the ``Login-script'' part of the
        !           947: ``Systems'' file section below.
        !           948: In addition to those mentioned in that section,
        !           949: the
        !           950: .qC \eT
        !           951: and
        !           952: .qC \eD
        !           953: are used to substitute the phone number
        !           954: string passed to the dialing function.
        !           955: .NH 1 
        !           956: \f(CBSystems\fP File
        !           957: .PP
        !           958: Lines in the
        !           959: .fN /usr/lib/uucp/Systems
        !           960: file represent systems
        !           961: that can be called by the local \*(uU programs.
        !           962: More than one line may be present for a particular system;
        !           963: the additional lines represent alternative
        !           964: communication paths that will be tried in sequential order.
        !           965: In addition, remote systems that don't appear in the
        !           966: .fN Systems
        !           967: file can be prevented from communicating.
        !           968: (This is the default configuration;
        !           969: it can be modified by changing
        !           970: .fN parms.h
        !           971: before
        !           972: compilation.)
        !           973: Each line contains the following fields:
        !           974: .ce
        !           975: \fISystem Time Caller Class Phone Login-script\fP
        !           976: .PP
        !           977: .I System :
        !           978: Name of the remote system.
        !           979: .PP
        !           980: .I Time :
        !           981: This is a string that indicates the days-of-week
        !           982: and times-of-day when the system should
        !           983: be called
        !           984: (e.g., 
        !           985: .cW MoTuTh0800\-1730 ).
        !           986: .PP
        !           987: The day portion may be a list containing
        !           988: \f(CWSu\fP,
        !           989: \f(CWMo\fP,
        !           990: \f(CWTu\fP,
        !           991: \f(CWWe\fP,
        !           992: \f(CWTh\fP,
        !           993: \f(CWFr\fP,
        !           994: \f(CWSa\fP;
        !           995: or it may be
        !           996: \f(CWWk\fP
        !           997: for any week-day or
        !           998: \f(CWAny\fP
        !           999: for any day.
        !          1000: The time should be a range of times (e.g., 
        !          1001: .cW 0800\-1230 ).
        !          1002: If no time portion is specified, any time
        !          1003: of day is assumed to be allowed for the call.
        !          1004: Note that a time range that spans 0000 is permitted;
        !          1005: \f(CW0800-0600\fP means all times are allowed \fIexcept\fP
        !          1006: times between 6 and 8 am.
        !          1007: Multiple time fields may be include using a
        !          1008: .qC ,
        !          1009: separator
        !          1010: (e.g.
        !          1011: .cW "Wk1800-0600,Sa,Su" ).
        !          1012: An optional subfield is available to specify the minimum time (minutes)
        !          1013: before a retry following a failed attempt.
        !          1014: (Note that if this subfield is used, it will override the normal
        !          1015: exponential backoff algorithm for retry upon failure.)
        !          1016: This subfield is separated by a
        !          1017: .qC ;
        !          1018: character.
        !          1019: .PP
        !          1020: .I Caller :
        !          1021: These are names that appear in the
        !          1022: first field of the
        !          1023: .fN Devices
        !          1024: file.
        !          1025: (e.g.
        !          1026: .cW ACU ,
        !          1027: .cWDK ,
        !          1028: .cW Sytek ,
        !          1029: .cWTCP ).
        !          1030: .PP
        !          1031: .I Class :
        !          1032: This is usually the line speed for the call (e.g., 
        !          1033: .cW 300 ,
        !          1034: .cW 1200 ,
        !          1035: .cW Any ).
        !          1036: If the field is not used for a particular entry, a
        !          1037: .qC -
        !          1038: can be used
        !          1039: as the place-holder.
        !          1040: When the value is
        !          1041: .qC Any ,
        !          1042: it means match any speed found for the particular caller.
        !          1043: If both the
        !          1044: .fN Systems
        !          1045: and
        !          1046: .fN Devices
        !          1047: files value is
        !          1048: .qC Any ,
        !          1049: then the value is
        !          1050: taken from the
        !          1051: .cW DEFAULT_BAUDRATE
        !          1052: constant defined in
        !          1053: .fN parms.h .
        !          1054: .PP
        !          1055: .I Phone :
        !          1056: For autodialers, the phone number is made up of an optional
        !          1057: alphabetic abbreviation (dialing prefix) and a numeric part.
        !          1058: The abbreviation should be one that appears in the
        !          1059: .fN Dialcodes
        !          1060: file (e.g., 
        !          1061: .cW mh1212 , 
        !          1062: .cW boston555\-1212 ).
        !          1063: For direct connections, the phone field is ignored.
        !          1064: (A
        !          1065: .qC -
        !          1066: should be used as a place-holder).
        !          1067: .PP
        !          1068: For
        !          1069: .I NETWORK
        !          1070: access,
        !          1071: the phone field is the token the switch
        !          1072: or network routine needs to get to the
        !          1073: particular system\(emit is used by the caller functions specified
        !          1074: in the
        !          1075: .fN Devices
        !          1076: file.
        !          1077: .PP
        !          1078: .I Login-script :
        !          1079: The login information is given as a series of
        !          1080: fields and subfields in the format
        !          1081: .P1 0
        !          1082: [ expect  send ] .\|.\|.
        !          1083: .P2
        !          1084: where
        !          1085: .cW expect
        !          1086: is the string expected to be read and
        !          1087: .cW send
        !          1088: is the string to be sent when the
        !          1089: .cW expect
        !          1090: string is received.
        !          1091: Each
        !          1092: .cW expect
        !          1093: field may be made up of subfields
        !          1094: of the form
        !          1095: .P1 0
        !          1096: expect[\-send\-expect] .\|.\|.
        !          1097: .P2
        !          1098: where the
        !          1099: .cW send
        !          1100: is sent if the prior
        !          1101: .cW expect
        !          1102: is
        !          1103: .I not
        !          1104: successfully read
        !          1105: and the
        !          1106: .cW expect
        !          1107: following the
        !          1108: .cW send
        !          1109: is the next expected string.
        !          1110: (For example,
        !          1111: .cW "login--login"
        !          1112: will expect
        !          1113: .cW login ;
        !          1114: if it gets it, the program will go on to the next field;
        !          1115: if it does not get
        !          1116: .cW login ,
        !          1117: it will send
        !          1118: .I null
        !          1119: followed by a new line,
        !          1120: then expect
        !          1121: .cW login
        !          1122: again.)
        !          1123: If no characters are initially expected from the remote
        !          1124: machine, the string
        !          1125: \&``\f(CW""\fP''
        !          1126: (a
        !          1127: .I null
        !          1128: string) should be used in the
        !          1129: first expect field.
        !          1130: Note that all
        !          1131: .cW send
        !          1132: fields will be sent followed by a new-line unless
        !          1133: the
        !          1134: .cW send
        !          1135: string is terminated with a
        !          1136: .qC \ec .
        !          1137: .1C
        !          1138: .KF
        !          1139: .TS
        !          1140: center;
        !          1141: |c| c|
        !          1142: |lfCW| l|.
        !          1143: _
        !          1144: character      meaning
        !          1145: =
        !          1146: \eb    send a backspace character.
        !          1147: \ec    T{
        !          1148: .ll 4i
        !          1149: .fi
        !          1150: \fRif at the end of a string, suppress the new-line that
        !          1151: is normally sent,
        !          1152: Ignored otherwise
        !          1153: T}
        !          1154: \ed    delay two seconds before sending or reading more characters
        !          1155: \eE    turn on echo checking (for slow devices)
        !          1156: \ee    turn off echo checking
        !          1157: \eK    insert a BREAK
        !          1158: \eN    send a null character.
        !          1159: \en    send a new-line character.
        !          1160: \ep    insert a pause (approximately \(14\-\(12 second).
        !          1161: \er    send a carriage-return.
        !          1162: \es    send a space character.
        !          1163: \et    send a tab character.
        !          1164: \e\e   send a \e character.
        !          1165: EOT    T{
        !          1166: .fi
        !          1167: \fRsend an EOT character (EOT new-line is sent twice)
        !          1168: T}
        !          1169: BREAK  send a break character
        !          1170: \e\fIddd\fP    T{
        !          1171: .fi
        !          1172: collapse the octal digits (\fIddd\fP) into
        !          1173: a single character and send that character.
        !          1174: T}
        !          1175: _
        !          1176: .TE
        !          1177: .TB 3 "Special Strings"
        !          1178: .KE
        !          1179: .2C
        !          1180: .PP
        !          1181: Table 3 gives the special characters that are used in the
        !          1182: .cW Login-script
        !          1183: field.
        !          1184: .PP
        !          1185: A typical entry in the
        !          1186: .fN Systems
        !          1187: file for a system that is reached by dialing out on
        !          1188: a modem is be
        !          1189: .P1 0
        !          1190: sys Any ACU 1200 mh7654 login--login uucp \*(cr
        !          1191:        ssword: word
        !          1192: .P2
        !          1193: A
        !          1194: .fN Systems
        !          1195: file entry for a direct connection would be
        !          1196: .P1 0
        !          1197: hawk Any hawk 9600 - login--login uucp \*(cr
        !          1198:        ssword: word
        !          1199: .P2
        !          1200: The corresponding
        !          1201: .fN Device
        !          1202: file entry would be
        !          1203: .P1 0
        !          1204: hawk ttyhh - 9600 direct
        !          1205: .P2
        !          1206: Note that the
        !          1207: .I expect
        !          1208: algorithm matches all or part of the input
        !          1209: string as illustrated in the password field above.
        !          1210: .NH 1 
        !          1211: \f(CBDialcodes\fP File
        !          1212: .PP
        !          1213: The
        !          1214: .fN Dialcodes
        !          1215: file contains the dial-code abbreviations used
        !          1216: in the
        !          1217: .fN Systems
        !          1218: file (e.g., py, mh, boston).
        !          1219: The entry format is
        !          1220: .P1 0
        !          1221: abb   dial-sequence
        !          1222: .P2
        !          1223: where
        !          1224: .cW abb
        !          1225: is the abbreviation and
        !          1226: .cW "dial-sequence"
        !          1227: is the dial sequence to call that location.
        !          1228: .PP
        !          1229: The line
        !          1230: .P1 0
        !          1231: mh  132-
        !          1232: .P2
        !          1233: would be set up so that entry
        !          1234: .cW mh7777
        !          1235: would
        !          1236: send
        !          1237: .cW 132-7777
        !          1238: to the dial unit.
        !          1239: ......
        !          1240: .NH 1 
        !          1241: \f(CBSysfiles\fB \(em alternate \f(CBSystems, Devices, Dialers\fR files
        !          1242: .PP
        !          1243: It is sometimes useful to have more than one
        !          1244: .fN Systems ,
        !          1245: .fN Devices ,
        !          1246: and
        !          1247: .fN Dialers
        !          1248: files.
        !          1249: The
        !          1250: .fN Systems
        !          1251: file can be split into smaller, more manageable files\(emone
        !          1252: containing local and one global data.
        !          1253: In addition,
        !          1254: .cN uucico
        !          1255: and
        !          1256: .cN cu
        !          1257: may need different
        !          1258: .fN Systems
        !          1259: files.
        !          1260: The
        !          1261: .fN Sysfiles
        !          1262: file provides a mechanism for specifying different
        !          1263: resource files.
        !          1264: The general form of the file is name-value pairs similar to the
        !          1265: .fN Permissions
        !          1266: file.
        !          1267: .cW "File-lists"
        !          1268: are colon separated lists of file names
        !          1269: that are in the
        !          1270: .fN /usr/lib/uucp
        !          1271: directory.
        !          1272: .P1 0
        !          1273: service=<service name> \e
        !          1274:        systems=<systems file-list> \e
        !          1275:        devices=<devices file-list> \e
        !          1276:        dialers=<dialers file-list>
        !          1277: .P2
        !          1278: Each entry is a single logical line where the trailing ``\e''
        !          1279: character is used to indicate continuation.
        !          1280: .P1 0
        !          1281: service=uucico \e
        !          1282:        systems=Systems.cico:Systems \e
        !          1283:        dialers=Dialers.cico:Dialers
        !          1284: 
        !          1285: service=cu \e
        !          1286:        systems=Systems.cu:Systems \e
        !          1287:        dialers=Dialers.cu:Dialers
        !          1288: .P2
        !          1289: .PP
        !          1290: In the example,
        !          1291: .cN uucico
        !          1292: will use the
        !          1293: .fN Systems.cico
        !          1294: file
        !          1295: followed by the
        !          1296: .fN Systems
        !          1297: file for remote systems information.
        !          1298: It also specifies two
        !          1299: .fN Dialers
        !          1300: files.
        !          1301: The
        !          1302: .cN cu
        !          1303: program will use
        !          1304: .fN Systems.cu
        !          1305: and the
        !          1306: .fN Systems
        !          1307: file.
        !          1308: It also has two
        !          1309: .fN Dialers
        !          1310: files.
        !          1311: Any options not specified in
        !          1312: .fN Sysfiles
        !          1313: will have the default of
        !          1314: .fN /usr/lib/uucp/Systems ,
        !          1315: .fN /usr/lib/uucp/Devices ", and"
        !          1316: .fN /usr/lib/uucp/Dialers .
        !          1317: .NH 1 
        !          1318: \f(CBPermissions\fP File
        !          1319: .PP
        !          1320: The
        !          1321: .fN /usr/lib/uucp/Permissions
        !          1322: file specifies the permission that remote sites
        !          1323: have with respect to login, file access, and command
        !          1324: execution.
        !          1325: Options provide for restricting the ability to request files and
        !          1326: the ability to receive files queued by the local site.
        !          1327: In addition, an option is available to specify the commands that a
        !          1328: remote site can execute on the local system.
        !          1329: .PP
        !          1330: The next sub-section gives three
        !          1331: .fN Permissions
        !          1332: file entries.
        !          1333: Taken together, they provide all the entries needed by most
        !          1334: sites running the \*(uU system.
        !          1335: The remainder of the section gives a detailed explanation of the
        !          1336: options.
        !          1337: .NH 2 
        !          1338: Starting Examples
        !          1339: .PP
        !          1340: The first example is the model of an entry for the public login on
        !          1341: your system;
        !          1342: it represents the most restrictive access to your system.
        !          1343: .P1 0
        !          1344: LOGNAME=nuucp
        !          1345: .P2
        !          1346: states that login
        !          1347: .cW nuucp
        !          1348: has all the default permissions/restrictions:
        !          1349: .IP \(bu
        !          1350: The remote site can send files exclusively to the
        !          1351: .I "uucp public"
        !          1352: directory.
        !          1353: (usually
        !          1354: .fN /usr/spool/uucppublic )
        !          1355: .IP \(bu
        !          1356: The remote site can \fInot\fP request to receive any files.
        !          1357: .IP \(bu
        !          1358: \fINo\fP files that are queued for the remote site will be transferred
        !          1359: during the present session.
        !          1360: .IP \(bu
        !          1361: The only commands that can be executed are the defaults\(emusually
        !          1362: .cN rmail .
        !          1363: .PP
        !          1364: This entry alone is sufficient to start communications with remote sites,
        !          1365: permitting files to be transferred to the
        !          1366: .I "uucp public"
        !          1367: directory by request of
        !          1368: the remote site.
        !          1369: .PP
        !          1370: The next example is for remote sites that log in, but have fewer restrictions.
        !          1371: The login and password corresponding to this entry should \fBnot\fP be distributed
        !          1372: to the general public;
        !          1373: it is usually reserved for closely coupled systems where the
        !          1374: .fN Systems
        !          1375: file
        !          1376: information can be tightly controlled.
        !          1377: .P1 0
        !          1378: LOGNAME=uucpz REQUEST=yes SENDFILES=yes \e
        !          1379:        READ=/  WRITE=/
        !          1380: .P2
        !          1381: This entry provides the following permissions
        !          1382: when a remote site logs in as
        !          1383: .cW uucpz :
        !          1384: .IP \(bu
        !          1385: Files can be requested from the local site (\c
        !          1386: .cW REQUEST
        !          1387: option).
        !          1388: .IP \(bu
        !          1389: Files can be transferred to any directory or any file
        !          1390: that is writable by user
        !          1391: .I other \(em\c
        !          1392: that is
        !          1393: a file/directory that is writable by a local user with
        !          1394: neither owner nor group permissions.
        !          1395: (Option
        !          1396: .cW WRITE
        !          1397: controls this permission.)
        !          1398: .IP \(bu
        !          1399: Any files readable by user
        !          1400: .I other
        !          1401: can be requested.
        !          1402: (Option
        !          1403: .cW READ
        !          1404: controls this permission.)
        !          1405: .IP \(bu
        !          1406: Any requests queued by the local site will be executed during
        !          1407: the conversation;
        !          1408: these are requests by local users that are destined for the
        !          1409: site that is calling in.
        !          1410: (\c
        !          1411: .cW SENDFILES
        !          1412: option).
        !          1413: .IP \(bu
        !          1414: The commands sent for execution on the local system by the remote
        !          1415: must be in the default set (usually
        !          1416: .cN rmail ).
        !          1417: .PP
        !          1418: Thus far, the examples showed entries that referred to remote sites
        !          1419: when they log in to the local system.
        !          1420: This example is an entry used when calling a remote site.
        !          1421: .P1 0
        !          1422: MACHINE=mhtsa:mhtsb:mhtsc:pwbcc \e
        !          1423:        REQUEST=yes READ=/ WRITE=/
        !          1424: .P2
        !          1425: When calling any of the systems given in the
        !          1426: .cW MACHINE
        !          1427: list,
        !          1428: the following permissions prevail:
        !          1429: .IP \(bu
        !          1430: The remote site can both request and send files (\c
        !          1431: .cW REQUEST
        !          1432: option).
        !          1433: .IP \(bu
        !          1434: The source or destination of the files on the local system can
        !          1435: be anywhere in the file system.
        !          1436: .IP \(bu
        !          1437: The only commands that will be executed for the remote site
        !          1438: are those in the default list.
        !          1439: .PP
        !          1440: Any site that is called that does not have its name in a
        !          1441: .cW MACHINE
        !          1442: entry will have the default permissions
        !          1443: with the exception that files queued for that site will be sent
        !          1444: (the
        !          1445: .cW SENDFILES
        !          1446: option only has meaning in a
        !          1447: .cW LOGNAME
        !          1448: entry).
        !          1449: .PP
        !          1450: The
        !          1451: three examples in this section form a model
        !          1452: .fN Permissions
        !          1453: file that
        !          1454: can be used by a system with a public login for remote sites
        !          1455: and several closely coupled machines.
        !          1456: .NH 2 
        !          1457: Basics
        !          1458: .PP
        !          1459: Each
        !          1460: .I entry
        !          1461: is a logical line;
        !          1462: physical lines are terminated with a
        !          1463: .qC \e
        !          1464: to indicate continuation.
        !          1465: Entries are made up of
        !          1466: .I "white space"
        !          1467: delimited
        !          1468: .I options .
        !          1469: Each option is a
        !          1470: name/value pair;
        !          1471: these are constructed by an option name followed by an
        !          1472: .qC =
        !          1473: followed by
        !          1474: the value.
        !          1475: Note that
        !          1476: white space is \fBnot\fP allowed within a name/value pair.
        !          1477: .PP
        !          1478: Comment lines begin with
        !          1479: .qC # ;
        !          1480: they occupy the entire line up to a newline character.
        !          1481: Blank lines are ignored (even within multi line entries).
        !          1482: .PP
        !          1483: There are two types of entries:
        !          1484: .CW LOGNAME
        !          1485: entries specify permissions for remote sites
        !          1486: when they log in to the local machine, and
        !          1487: .CW MACHINE
        !          1488: entries
        !          1489: specify permissions for sites that the local machine calls.
        !          1490: .PP
        !          1491: LOGNAME entries will contain a
        !          1492: .cW LOGNAME
        !          1493: option.
        !          1494: MACHINE entries will contain a
        !          1495: .cW MACHINE
        !          1496: option somewhere in the entry.
        !          1497: .NH 2 
        !          1498: Some Rules
        !          1499: .PP
        !          1500: All login ids used by remote sites to login for uucp
        !          1501: \fImust\fP appear in one and only one
        !          1502: LOGNAME entry.
        !          1503: .PP
        !          1504: Any site that is called that
        !          1505: \fIdoes not\fP appear in a
        !          1506: MACHINE entry
        !          1507: will have the following
        !          1508: default permissions/restrictions:
        !          1509: .IP \(em 3n
        !          1510: Local send and receive requests will be executed.
        !          1511: .IP \(em
        !          1512: The remote can send files to the system's public uucp directory.
        !          1513: .IP \(em
        !          1514: The commands sent by the remote for execution on the local machine
        !          1515: must be in the default set\(emusually
        !          1516: .cN rmail
        !          1517: and
        !          1518: .cN rnews .
        !          1519: .1C
        !          1520: .KF
        !          1521: .TS
        !          1522: center;
        !          1523: |c| c| c| c|
        !          1524: |lFCW| lfR | lFCW| lFCW| .
        !          1525: _
        !          1526: option meaning values  default
        !          1527: =
        !          1528: MACHINE        remote machine name identification      \fImachine list\fP
        !          1529: LOGNAME        login used by a remote  \fIlogin ids.\fP
        !          1530: REQUEST        remote machine can request files        yes/no  no
        !          1531: READ   directories remote can request from     \fIdirectory list\fP
        !          1532: WRITE  directories remote can write into       \fIdirectory list\fP
        !          1533: SENDFILES      T{
        !          1534: .nf
        !          1535: send queued files when called by
        !          1536: remote
        !          1537: T}     yes/no  no
        !          1538: NOREAD directories remote can \fBnot\fP request from   \fIdirectory list\fP
        !          1539: NOWRITE        directories remote can \fBnot\fP write into     \fIdirectory list\fP
        !          1540: CALLBACK       call back remote        yes/no  no
        !          1541: COMMANDS       T{
        !          1542: .nf
        !          1543: list of allowed commands for execution
        !          1544: by \f(CWuuxqt\fP
        !          1545: T}     T{
        !          1546: ALL or
        !          1547: .nf
        !          1548: \fIcommand list\fP
        !          1549: T}
        !          1550: PUBDIR \*(uU public directory  \fIdirectory\fP T{
        !          1551: .nf
        !          1552: \fIlogin
        !          1553: directory\fP
        !          1554: T}
        !          1555: MYNAME local machine name      \fImachine name\fP      T{
        !          1556: .nf
        !          1557: \fIlocal
        !          1558: name\fP
        !          1559: T}
        !          1560: VALIDATE       verify remote system name vs. login id. \fImachine list\fP 
        !          1561: _
        !          1562: .TE
        !          1563: .TB 4 "Permissions File Options"
        !          1564: .KE
        !          1565: .2C
        !          1566: .NH 2 
        !          1567: Options
        !          1568: .PP
        !          1569: This section give the details of each option, specifying how they are
        !          1570: used and their default values.
        !          1571: Table 4 is a summary of the options available for the
        !          1572: .fN Permissions
        !          1573: file.
        !          1574: .NH 2 
        !          1575: MACHINE and LOGNAME
        !          1576: .PP
        !          1577: The MACHINE entry specifies the permissions that take effect when
        !          1578: a remote site is
        !          1579: .I called .
        !          1580: .P1 0
        !          1581: MACHINE=mhtsa
        !          1582: .P2
        !          1583: is the start of an entry that will specify the permissions associated
        !          1584: with machine
        !          1585: .cW mhtsa .
        !          1586: The MACHINE option can contain a list of different system names,
        !          1587: each separated by a
        !          1588: .qC :
        !          1589: character.
        !          1590: For example,
        !          1591: .P1 0
        !          1592: MACHINE=mhtsa:mhtsb:mhtsc
        !          1593: .P2
        !          1594: .ne5
        !          1595: .PP
        !          1596: The
        !          1597: .cW LOGNAME
        !          1598: entry specifies a list of login ids of remote sites
        !          1599: that are able to log into the local system.
        !          1600: The option contains one or more names separated by a
        !          1601: .qC :
        !          1602: character.
        !          1603: For example,
        !          1604: .P1 0
        !          1605: LOGNAME=nuucp
        !          1606: LOGNAME=uucpz:uucyz
        !          1607: .P2
        !          1608: Names that appear in
        !          1609: .cW LOGNAME
        !          1610: options can appear in only one such entry.
        !          1611: .NH 2 
        !          1612: REQUEST
        !          1613: .PP
        !          1614: The
        !          1615: .cW REQUEST
        !          1616: option can appear in either a
        !          1617: LOGNAME
        !          1618: entry or a
        !          1619: MACHINE
        !          1620: entry
        !          1621: and specifies whether the remote can make requests to receive local
        !          1622: files.
        !          1623: .P1 0
        !          1624: REQUEST=yes
        !          1625: .P2
        !          1626: specifies that the remote \fBcan\fP request files.
        !          1627: .P1 0
        !          1628: REQUEST=no
        !          1629: .P2
        !          1630: specifies that the remote \fBcan not\fP request files.
        !          1631: The latter is the default\(emit will be used if the
        !          1632: .cW REQUEST
        !          1633: option is not specified.
        !          1634: .NH 2 
        !          1635: SENDFILES
        !          1636: .PP
        !          1637: .cW  SENDFILES
        !          1638: specifies whether the \fIcalled\fP site will execute locally
        !          1639: queued requests during the conversation.
        !          1640: The default is that locally queued
        !          1641: requests will not be executed during the call;
        !          1642: they will be done only when the remote is \fIcalled\fP by the local system.
        !          1643: (I don't care who you say you are, I'll send you queued files when
        !          1644: I call you.)
        !          1645: .PP
        !          1646: Clearly, this option is only significant in LOGNAME entries, since
        !          1647: MACHINE entries apply when calls are made out to remote sites.
        !          1648: The option is ignored when a MACHINE entry is being used.
        !          1649: .P1 0
        !          1650: SENDFILES=yes
        !          1651: .P2
        !          1652: specifies that the locally queued requests will be executed when
        !          1653: the remote site logs in as one of the names in this entry's
        !          1654: .cW LOGNAME
        !          1655: option.
        !          1656: .PP
        !          1657: The default setting for the
        !          1658: .cW SENDFILE
        !          1659: option is
        !          1660: .P1 0
        !          1661: SENDFILES=call
        !          1662: .P2
        !          1663: meaning that queued files will be sent only when the local machine
        !          1664: makes the connection.
        !          1665: This
        !          1666: .cW call
        !          1667: value can be specified for documentation purposes.
        !          1668: .NH 2 
        !          1669: READ and WRITE
        !          1670: .PP
        !          1671: The default for both the
        !          1672: .cW READ
        !          1673: and
        !          1674: .cW WRITE
        !          1675: options
        !          1676: is the
        !          1677: \*(uU
        !          1678: public directory.
        !          1679: The options
        !          1680: .P1 0
        !          1681: READ=/usr/spool/uucppublic \e
        !          1682:        WRITE=/usr/spool/uucppublic
        !          1683: .P2
        !          1684: are the defaults and may be specified for documentation purposes.
        !          1685: The options
        !          1686: .P1 0
        !          1687: READ=/ WRITE=/
        !          1688: .P2
        !          1689: specify permission to access any file that can be accessed by a local
        !          1690: user with
        !          1691: .I "other"
        !          1692: permissions.
        !          1693: .PP
        !          1694: The value of these entries is a colon separated list of path
        !          1695: names.
        !          1696: The
        !          1697: .cW READ
        !          1698: option is for requesting files and the
        !          1699: .cW WRITE
        !          1700: option for
        !          1701: depositing files.
        !          1702: Any file coming in or going out must
        !          1703: match a prefix in
        !          1704: .cW READ
        !          1705: or
        !          1706: .cW WRITE
        !          1707: option.
        !          1708: .PP
        !          1709: To grant permission to deposit files in
        !          1710: .fN /usr/news ,
        !          1711: as well as the public directory, specify
        !          1712: .P1 0
        !          1713: WRITE=/usr/spool/uucppublic:/usr/news
        !          1714: .P2
        !          1715: in the entry.
        !          1716: .PP
        !          1717: \fBIf the
        !          1718: .cW READ
        !          1719: or
        !          1720: .cW WRITE
        !          1721: option is specified, all the
        !          1722: path names must be specified;
        !          1723: they do not add to the default
        !          1724: list.\fP
        !          1725: .NH 2 
        !          1726: NOREAD and NOWRITE
        !          1727: .PP
        !          1728: There are two other options in the file access class,
        !          1729: .cW NOREAD
        !          1730: and
        !          1731: .cW NOWRITE.
        !          1732: These will rarely be used;
        !          1733: they specify exceptions to the
        !          1734: .cW READ
        !          1735: and
        !          1736: .cW WRITE
        !          1737: options or defaults.
        !          1738: .P1 0
        !          1739: READ=/ NOREAD=/etc \e
        !          1740:        WRITE=/usr/spool/uucppublic
        !          1741: .P2
        !          1742: This example would permit reading any file except those in the
        !          1743: .fN /etc
        !          1744: directory (and its sub directories\(emremember these are prefixes)
        !          1745: and writing only to the default
        !          1746: .I public
        !          1747: directory.
        !          1748: .cW NOWRITE
        !          1749: works the same way for sending files to the local system.
        !          1750: .NH 2 
        !          1751: CALLBACK
        !          1752: .PP
        !          1753: The
        !          1754: .cW CALLBACK
        !          1755: option is used in LOGNAME entries to specify that
        !          1756: no transaction will take place, but the calling system,
        !          1757: as established during handshake, will be called back.
        !          1758: .P1 0
        !          1759: CALLBACK=yes
        !          1760: .P2
        !          1761: specifies this action.
        !          1762: The default is
        !          1763: .P1 0
        !          1764: CALLBACK=no
        !          1765: .P2
        !          1766: The
        !          1767: .cW CALLBACK
        !          1768: option will rarely be used.
        !          1769: (Note that if two sites have this option set for each other, a conversation
        !          1770: will never get started.)
        !          1771: .NH 2 
        !          1772: COMMANDS
        !          1773: .QS
        !          1774: .ft B
        !          1775: WARNING!!
        !          1776: The
        !          1777: .cW COMMANDS
        !          1778: option can be hazardous to the security
        !          1779: of your system.
        !          1780: Use it with extreme care.
        !          1781: .ft R
        !          1782: .QE
        !          1783: .PP
        !          1784: The
        !          1785: .cW VALIDATE
        !          1786: option should be used in conjunction with the
        !          1787: .cW COMMANDS
        !          1788: option whenever potentially dangerous commands
        !          1789: like
        !          1790: .cN cat
        !          1791: and
        !          1792: .cN uucp
        !          1793: are specified.
        !          1794: Any command that reads or writes files is potentially
        !          1795: dangerous to local security when executed by the \*(uU
        !          1796: remote execution program (\c
        !          1797: .cN uuxqt ).
        !          1798: .PP
        !          1799: The
        !          1800: .cN uux
        !          1801: program will generate remote execution requests and queue
        !          1802: them to be transferred to the remote site.
        !          1803: Files and a command are sent to the target site.
        !          1804: The
        !          1805: .cW COMMANDS
        !          1806: option can be used
        !          1807: in MACHINE entries to specify the commands that a remote
        !          1808: machine can execute.
        !          1809: .ft R
        !          1810: .P1 0
        !          1811: COMMANDS=rmail:rnews
        !          1812: .P2
        !          1813: This line specifies the commands that can be executed by the
        !          1814: remote machine are either
        !          1815: .cN rmail
        !          1816: or
        !          1817: .cN rnews
        !          1818: exclusively.
        !          1819: (The default list is specified in the
        !          1820: .fN parms.h
        !          1821: header file
        !          1822: during compilation of \*(uU.
        !          1823: The defaults settings will be discussed later.)
        !          1824: The entry
        !          1825: .P1 0
        !          1826: MACHINE=owl:raven:hawk:dove \e
        !          1827:        COMMANDS=rmail:rnews:lp
        !          1828: .P2
        !          1829: overrides the
        !          1830: .cW COMMAND
        !          1831: default such that the command list
        !          1832: for machines owl, raven, hawk, and dove now consists of
        !          1833: .cN rmail ,
        !          1834: .cN rnews ,
        !          1835: and
        !          1836: .cN lp .
        !          1837: .PP
        !          1838: .ft B
        !          1839: If you don't trust a caller's identity, don't let that system
        !          1840: execute dangerous commands.
        !          1841: .ft
        !          1842: (If you can't trust a site,
        !          1843: make sure that the login and password it uses is restricted.)
        !          1844: .PP
        !          1845: .ft B
        !          1846: Giving a site an unrestricted login, with file access and remote execution
        !          1847: capability, is like giving anyone on that system a local login.
        !          1848: .ft
        !          1849: .NH 2 
        !          1850: VALIDATE
        !          1851: .PP
        !          1852: Use the
        !          1853: .cW VALIDATE
        !          1854: option in connection with the
        !          1855: .cW COMMANDS
        !          1856: option
        !          1857: when specifying dangerous commands.
        !          1858: It is used in LOGNAME entries to provide \fIsome\fP verification
        !          1859: of the caller's identity.
        !          1860: However, an important aspect of this validation is that the
        !          1861: login/password associated with this entry be protected.
        !          1862: If an outsider gets that information, the validation is not valid!
        !          1863: .P1 0
        !          1864: LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk
        !          1865: .P2
        !          1866: This entry specifies that if a remote logs in and says that it is
        !          1867: any of the specified birds, it must have logged in as
        !          1868: .cW uucpfriend .
        !          1869: If an outsider gets the
        !          1870: .cW uucpfriend
        !          1871: login/password,
        !          1872: masquerading is trivial.
        !          1873: .PP
        !          1874: But what does this have to do with the
        !          1875: .cW COMMANDS
        !          1876: option,
        !          1877: which only appears in MACHINE entries?
        !          1878: A short answer is that it connects the MACHINE entry that has the
        !          1879: .cW COMMANDS
        !          1880: option with a protected login entry that appears in
        !          1881: a
        !          1882: .cW LOGNAME
        !          1883: option.
        !          1884: This connection is needed because the execution demon is not
        !          1885: running while the remote is logged in;
        !          1886: it is an asynchronous process with no knowledge of
        !          1887: what system sent the execution requests.
        !          1888: .PP
        !          1889: Therefore, the real question is, how does the local site know who originated the
        !          1890: execution files (\c
        !          1891: .qC X.
        !          1892: files sent by the
        !          1893: .cN uux
        !          1894: command on the remote site)?
        !          1895: .PP
        !          1896: Each remote site has its own
        !          1897: .I spool
        !          1898: directory, with write permission
        !          1899: only given to the \*(uU programs.
        !          1900: The execution files from the remote site are put in its
        !          1901: .I spool
        !          1902: directory.
        !          1903: Therefore, when the
        !          1904: .cN uuxqt
        !          1905: program runs, it can use the
        !          1906: .I spool
        !          1907: directory name to find the MACHINE entry in the
        !          1908: .fN Permissions
        !          1909: file and get the
        !          1910: .cW COMMANDS
        !          1911: list, or if the machine name does not
        !          1912: appear in the
        !          1913: .fN Permissions
        !          1914: file, the default list will be used.
        !          1915: .P1 0
        !          1916: MACHINE=mhtsa:mhtsb:mhtsc \e
        !          1917:        REQUEST=yes \e
        !          1918:        COMMANDS=ALL \e
        !          1919:        READ=/  WRITE=/
        !          1920: 
        !          1921: LOGNAME=uucpz \e
        !          1922:        VALIDATE=mhtsa:mhtsb:mhtsc \e
        !          1923:        REQUEST=yes   SENDFILES=yes \e
        !          1924:        READ=/  WRITE=/
        !          1925: .P2
        !          1926: The example above
        !          1927: specifies unrestricted read, write, and command execution.
        !          1928: The
        !          1929: .qC ALL
        !          1930: value in the commands option means that any command
        !          1931: can be executed!
        !          1932: \fBWARNING\fP:
        !          1933: Using the
        !          1934: .qC ALL
        !          1935: value gives the remote site unlimited access to your
        !          1936: system.
        !          1937: Files that are only readable or writable by user
        !          1938: .I "uucp"
        !          1939: (like
        !          1940: .fN Systems )
        !          1941: can be accessed using commands like
        !          1942: .cN "ed" .
        !          1943: .PP
        !          1944: The assumption you make by the first entry above is that when you
        !          1945: call
        !          1946: .I mhtsa ,
        !          1947: .I mhtsb
        !          1948: or
        !          1949: .I mhtsc ,
        !          1950: you really know who you are talking to.
        !          1951: Therefore, any files put into one of the
        !          1952: .I mhtsa ,
        !          1953: .I mhtsb
        !          1954: or
        !          1955: .I mhtsc ,
        !          1956: .I spool
        !          1957: directories is put there by one of those sites.
        !          1958: If a remote site logs in declaring it is one of these three systems,
        !          1959: the execution files will also be put in the privileged
        !          1960: .I spool
        !          1961: directory.
        !          1962: You therefore have to validate that the site has the privileged
        !          1963: login
        !          1964: .I "uucpz"
        !          1965: to prevent masquerading.
        !          1966: .NH 2 
        !          1967: COMMANDS revisited
        !          1968: .PP
        !          1969: The
        !          1970: .cW COMMANDS
        !          1971: option specifies a list of commands that can be
        !          1972: executed by remote machines.
        !          1973: In addition to the names as specified above, they can be full path
        !          1974: names of commands, for example
        !          1975: .P1 0
        !          1976: COMMANDS=rmail:/usr/lbin/rnews:/usr/local/lp
        !          1977: .P2
        !          1978: specifies that command
        !          1979: .cN "rmail"
        !          1980: uses the default path,
        !          1981: which is set up at \*(uU compilation time\(emspecified in the
        !          1982: .fN parms.h
        !          1983: file.
        !          1984: When the remote site specifies
        !          1985: .cN rnews
        !          1986: or
        !          1987: .fN /usr/lbin/rnews
        !          1988: for the
        !          1989: command to be executed,
        !          1990: .fN /usr/lbin/rnews
        !          1991: will be executed
        !          1992: regardless of the default path.
        !          1993: Likewise,
        !          1994: .fN /usr/local/lp
        !          1995: is the
        !          1996: .cN lp
        !          1997: command that will be executed.
        !          1998: .PP
        !          1999: Including the
        !          2000: .qC "ALL"
        !          2001: value in the list means that any command from the
        !          2002: remote machine(s) specified in the entry will be executed.
        !          2003: .P1 0
        !          2004: COMMANDS=/usr/lbin/rnews:ALL:/usr/local/lp
        !          2005: .P2
        !          2006: This example illustrates two points.
        !          2007: The
        !          2008: .qC ALL
        !          2009: value can appear anywhere in the string.
        !          2010: And, the path names specified for
        !          2011: .cN rnew
        !          2012: and
        !          2013: .cN lp
        !          2014: will be used
        !          2015: if the requested command does not contain the full-path names for
        !          2016: .cN rnews
        !          2017: or
        !          2018: .cN lp .
        !          2019: .NH 2 
        !          2020: MYNAME
        !          2021: .PP
        !          2022: When a remote calls, the called system responds with the local system
        !          2023: name;
        !          2024: this communicated in the
        !          2025: .cW Shere
        !          2026: message.
        !          2027: There are some situations when a system may want to say it is someone else.
        !          2028: For testing, this permits a system to call itself.
        !          2029: Also, a series of systems can be made to look like one to the outside world,
        !          2030: while retaining unique identities within a local network.
        !          2031: .P1 0
        !          2032: LOGNAME=uucptest   MYNAME=testing
        !          2033: .P2
        !          2034: The local system will report its name as
        !          2035: .cW testing
        !          2036: whenever a remote logs in as uucptest.
        !          2037: .PP
        !          2038: This facility can also be used when calling out:
        !          2039: .P1 0
        !          2040: MACHINE=testmach   MYNAME=atest
        !          2041: .P2
        !          2042: Tells the machine,
        !          2043: .cW testmach ,
        !          2044: that machine
        !          2045: .cW atest
        !          2046: is calling.
        !          2047: .......
        !          2048: .NH 2 
        !          2049: PUBDIR
        !          2050: .PP
        !          2051: .fN /usr/spool/uucppublic ,
        !          2052: the
        !          2053: .I public
        !          2054: directory,
        !          2055: provides directories
        !          2056: for public access.
        !          2057: One may want to have different
        !          2058: .I public
        !          2059: directories based on
        !          2060: login ids.
        !          2061: .P1 0
        !          2062: LOGNAME=loginA\e
        !          2063:        PUBDIR=/usr/spool/uucppublic/loginA
        !          2064: LOGNAME=loginB\e
        !          2065:        PUBDIR=/usr/spool/uucppublic/loginB
        !          2066: .P2
        !          2067: This can also be specified when remote machines are called:
        !          2068: .P1 0
        !          2069: MACHINE=machineA\e
        !          2070:        PUBDIR=/usr/spool/uucppublic/machineA
        !          2071: MACHINE=machineB\e
        !          2072:        PUBDIR=/usr/spool/uucppublic/machineB
        !          2073: .P2
        !          2074: .NH 2 
        !          2075: Default Settings
        !          2076: .PP
        !          2077: The
        !          2078: .fN parms.h
        !          2079: header file contains some default settings that affect
        !          2080: the
        !          2081: .fN Permissions
        !          2082: file processing.
        !          2083: The
        !          2084: .cW PATH
        !          2085: manifest defines the
        !          2086: .cW PATH
        !          2087: environment variable that will be
        !          2088: set when remote commands are executed.
        !          2089: A typical line is
        !          2090: .P1 0
        !          2091: #define PATH "PATH=/bin:/usr/bin:/usr/lbin"
        !          2092: .P2
        !          2093: The default list of commands is defined by
        !          2094: .P1 0
        !          2095: #define DEFAULTCMDS     "rmail"
        !          2096: .P2
        !          2097: Another example is
        !          2098: (note this is one physical line broken here for readability)
        !          2099: .P1 0
        !          2100: #define DEFAULTCMDS
        !          2101:        "rmail:rnews:xp:lp"
        !          2102: .P2
        !          2103: These take effect if no
        !          2104: .cW COMMANDS
        !          2105: option is specified for the
        !          2106: machine that sent the remote execution.
        !          2107: .NH 2 
        !          2108: MACHINE Entry For Other Systems
        !          2109: .PP
        !          2110: An administrator may want to specify different option values for
        !          2111: the machines it calls that are not mentioned in specific MACHINE
        !          2112: entries.
        !          2113: This may occur when there are many machines calling in, and the command
        !          2114: set changes from time to time.
        !          2115: For these cases, it is not convenient to change the
        !          2116: .cW DEFAULTCMDS
        !          2117: as it would require a recompile.
        !          2118: The name
        !          2119: .cW OTHER
        !          2120: for the machine name is used for this entry.
        !          2121: .P1 0
        !          2122: MACHINE=OTHER  \e
        !          2123: COMMANDS=rmail:rnews:/usr/lbin/Photo
        !          2124: .P2
        !          2125: All other options available for the MACHINE entry may also be set
        !          2126: for the machines that are not mentioned in other MACHINE entries.
        !          2127: .NH 2 
        !          2128: Combining MACHINE and LOGNAME Entries
        !          2129: .PP
        !          2130: It is possible to combine MACHINE and LOGNAME entries into a single entry
        !          2131: where the common options are the same.
        !          2132: For example, these two entries
        !          2133: .P1 0
        !          2134: MACHINE=mhtsa:mhtsb:mhtsc REQUEST=yes \e
        !          2135:        READ=/  WRITE=/
        !          2136: 
        !          2137: LOGNAME=uucpz REQUEST=yes SENDFILES=yes \e
        !          2138:        READ=/  WRITE=/
        !          2139: .P2
        !          2140: share the REQUEST, READ, and WRITE options.
        !          2141: They can be merged into one entry
        !          2142: .P1 0
        !          2143: MACHINE=mhtsa:mhtsb:mhtsc REQUEST=yes \e
        !          2144:        LOGNAME=uucpz SENDFILES=yes \e
        !          2145:        READ=/  WRITE=/
        !          2146: .P2
        !          2147: that will take the place of the two entries.
        !          2148: .NH 1 
        !          2149: \f(CBMaxuuxqts\fP File
        !          2150: .PP
        !          2151: The
        !          2152: .fN /usr/lib/uucp/Maxuuxqts
        !          2153: file limits the number of simultaneous
        !          2154: .cN uuxqt
        !          2155: programs running;
        !          2156: it contains an \*(aS number.
        !          2157: The installation procedure sets the number to two;
        !          2158: the administrator may want to change this number to meet local needs.
        !          2159: If you get a lot of traffic from
        !          2160: .cN mail
        !          2161: or
        !          2162: .cN netnews ,
        !          2163: you may want to increase
        !          2164: the number to decrease wait time.
        !          2165: But remember, the more you have running, the higher the load on the system.
        !          2166: .NH 1 
        !          2167: \f(CBMaxuuscheds\fP File
        !          2168: .PP
        !          2169: The
        !          2170: .fN /usr/lib/uucp/Maxuuscheds
        !          2171: file limits the number of simultaneous
        !          2172: .cN uusched
        !          2173: programs running;
        !          2174: it contains an \*(aS number.
        !          2175: Each 
        !          2176: .cN uusched
        !          2177: running will have one
        !          2178: .cN uucico
        !          2179: associated with it;
        !          2180: limiting the number will throttle the load on the system.
        !          2181: The limit should be less than the number of outgoing lines used
        !          2182: by \*(uU ;
        !          2183: a smaller number is often desirable.
        !          2184: The installation procedure sets the number to two;
        !          2185: the administrator may want to change this number to meet local needs.
        !          2186: .NH 1 
        !          2187: \f(CBremote.unknown\fP Program
        !          2188: .PP
        !          2189: This program is called when a remote site that is not in the
        !          2190: .fN Systems
        !          2191: file calls in to start a conversation.
        !          2192: The program logs attempts by unknown remote systems in
        !          2193: .fN /usr/spool/uucp/.Admin/Foreign
        !          2194: and sends mail to the
        !          2195: .cW uucp
        !          2196: login.
        !          2197: Execution of this program can be turned off by an option in
        !          2198: .fN parms.h .
        !          2199: The program
        !          2200: .cN unknown.c
        !          2201: is installed in
        !          2202: .cN remote.unknown ,
        !          2203: so the source can be modified to provide different functionality
        !          2204: by modifying the program and re-installing it.
        !          2205: .NH 1 
        !          2206: Administration
        !          2207: .PP
        !          2208: The work required by the \*(uU
        !          2209: administrator depends heavily
        !          2210: on the amount of traffic that enters or leaves a system and
        !          2211: the quality of the connections that can be made to and from that system.
        !          2212: For the average system, only a modest amount of traffic (100 to 200 files
        !          2213: per day) pass through the system and little if any
        !          2214: intervention with the
        !          2215: \*(uU
        !          2216: automatic cleanup functions is necessary.
        !          2217: Systems that pass large numbers of files
        !          2218: may require more attention.
        !          2219: The following rest of this section
        !          2220: describes the routine administrative
        !          2221: tasks that must be performed by the administrator
        !          2222: or are automatically performed by
        !          2223: the
        !          2224: \*(uU
        !          2225: package.
        !          2226: .NH 2 
        !          2227: Cleanup of Undeliverable Jobs
        !          2228: .PP
        !          2229: A big problem
        !          2230: in a dialup network like \*(uU
        !          2231: is dealing with the backlog of jobs that cannot
        !          2232: be transmitted to other systems.
        !          2233: The
        !          2234: .cN uustat
        !          2235: program should be invoked regularly to give information
        !          2236: about the status of connection to various machines, and the size and
        !          2237: age of the queued requests.
        !          2238: The
        !          2239: .cN uudemon.admin
        !          2240: shell should be started by
        !          2241: .cN cron
        !          2242: at least once per day\(emthis will send the administrator the
        !          2243: current status.
        !          2244: Of particular interest are the age (in days)
        !          2245: of the oldest request in each queue,
        !          2246: the number of times failure to reach that system has occurred, and
        !          2247: the reason for failure.
        !          2248: In addition, the age of the oldest execution request (\c
        !          2249: .fN X.
        !          2250: file) is
        !          2251: also given.
        !          2252: .PP
        !          2253: Each
        !          2254: .I spool
        !          2255: directory will contain some
        !          2256: .fN X.
        !          2257: files,
        !          2258: .fN  C.
        !          2259: files, and
        !          2260: .fN  D.
        !          2261: files.
        !          2262: When work can not be done, these files should be
        !          2263: removed.
        !          2264: The
        !          2265: .cN uucleanup
        !          2266: program,
        !          2267: which is run from
        !          2268: .cN uudemon.cleanup
        !          2269: will provide this function.
        !          2270: Options to
        !          2271: .cN uucleanup
        !          2272: specify the age for sending a
        !          2273: warning message to the requester and age for deleting the
        !          2274: various file.
        !          2275: The
        !          2276: .cN uucleanup
        !          2277: program knows
        !          2278: about the different type files that could get left in the
        !          2279: .I spool
        !          2280: directories.
        !          2281: It uses heuristics to try to give the users relevant
        !          2282: information about failures, for example, it tries to return
        !          2283: undeliverable mail messages to the sender.
        !          2284: In addition, for send/receive requests, it tells the requester
        !          2285: what was attempted by giving specific file names.
        !          2286: .NH 2 
        !          2287: Cleanup of the Public Directory
        !          2288: .PP
        !          2289: In order to keep the local file system from overflowing
        !          2290: when files are sent to the
        !          2291: .I public
        !          2292: directory, the
        !          2293: .cN uudemon.cleanup
        !          2294: procedure is set up with a
        !          2295: .cN find
        !          2296: command to remove any files that are older than 7 days
        !          2297: and directories that are empty.
        !          2298: This interval may need to be shortened if
        !          2299: there is not enough space to devote to the
        !          2300: .I public
        !          2301: directory.
        !          2302: .PP
        !          2303: Since the
        !          2304: .I spool
        !          2305: directories (those in
        !          2306: .fN /usr/spool/uucp )
        !          2307: may be very dynamic; they may grow
        !          2308: large before transfers take place, it is a good idea to
        !          2309: reorganize and compact the structure.
        !          2310: One way to do this is to put some code in
        !          2311: .fN /etc/rc
        !          2312: to be executed upon booting the system.
        !          2313: Use
        !          2314: .fN cpio
        !          2315: to move all the files and directories out,
        !          2316: remove the directories under
        !          2317: .fN /usr/spool/uucp ,
        !          2318: and then move back the files and directories.
        !          2319: .NH 2 
        !          2320: Compaction of Log Files
        !          2321: .PP
        !          2322: \*(uU has individual log files for each system
        !          2323: and each program\(emthere is a separate
        !          2324: logfile for
        !          2325: .cN uucico
        !          2326: requests and one for
        !          2327: .cN uuxqt
        !          2328: execution requests.
        !          2329: The
        !          2330: .cN uulog
        !          2331: shell gives the user access to the information in these
        !          2332: files by system name.
        !          2333: These files are combined and stored in directory
        !          2334: .fN /usr/lib/uucp/.Old
        !          2335: whenever
        !          2336: .cN uudemon.cleanup
        !          2337: is executed.
        !          2338: The daemon saves two days' files;
        !          2339: this can be easily changed by the administrator.
        !          2340: If space is a problem, the administrator might consider reducing the
        !          2341: number of days the files are kept, or modify the shell to compact
        !          2342: the files using the
        !          2343: .cN pack
        !          2344: command.
        !          2345: .NH 2 
        !          2346: Polling Other Systems
        !          2347: .PP
        !          2348: Systems that are passive members of the network
        !          2349: must be polled by other systems
        !          2350: in order for their files to be sent.
        !          2351: This can be arranged by using the
        !          2352: .cN uudemon.poll
        !          2353: shell.
        !          2354: The
        !          2355: .cN uudemon.poll
        !          2356: read the
        !          2357: .fN /usr/lib/uucp/Poll
        !          2358: file, which contains
        !          2359: the systems and times to poll them.
        !          2360: The lines contain the name of the remote to call followed by a TAB
        !          2361: character and then a space separated list of times to poll.
        !          2362: For example,
        !          2363: .P1 0
        !          2364: eagle        0 4 8 12 16 20
        !          2365: .P2
        !          2366: will provide polling of system
        !          2367: .I eagle
        !          2368: every four hours.
        !          2369: Note that
        !          2370: .cN uudemon.poll
        !          2371: does not do the polling, it merely sets up a polling
        !          2372: .fN C.
        !          2373: file in the
        !          2374: .I spool
        !          2375: directory that will be
        !          2376: seen by the scheduler started by
        !          2377: .cN uudemon.hour .
        !          2378: .......
        !          2379: .NH 2 
        !          2380: Out of Space
        !          2381: .PP
        !          2382: The file system used to spool
        !          2383: incoming or outgoing jobs
        !          2384: can run out of space and prevent jobs from being spawned
        !          2385: or received from remote systems.
        !          2386: The inability to receive jobs is the worse of the two conditions.
        !          2387: When file space does become available, the system will be
        !          2388: flooded
        !          2389: with the backlog of traffic.
        !          2390: .NH 2 
        !          2391: Bad ACU and Modems
        !          2392: .PP
        !          2393: The ACU and incoming modems
        !          2394: occasionally cause problems that make it difficult to contact
        !          2395: other systems or to receive files.
        !          2396: These problems are usually readily identifiable since
        !          2397: the status files accessed by
        !          2398: .cN uustat
        !          2399: give counts and
        !          2400: reasons for contact failure.
        !          2401: If a bad line is suspected, it is useful to use
        !          2402: the
        !          2403: .cN cu
        !          2404: command to
        !          2405: try calling another system using the suspected line.
        !          2406: This method could also be used to check the login/password
        !          2407: information and phone number.
        !          2408: .NH 2 
        !          2409: Debugging
        !          2410: .PP
        !          2411: To verify that a system on the network can be contacted,
        !          2412: the
        !          2413: .cN uucico
        !          2414: program can be invoked by the administrator.
        !          2415: The
        !          2416: .cN Uutry
        !          2417: shell program is distributed for this purpose.
        !          2418: For example, to verify that
        !          2419: .I mhtsd
        !          2420: can be contacted, try
        !          2421: .P1 0
        !          2422: Uutry mhtsd
        !          2423: .P2
        !          2424: This will start the transfer program (\c
        !          2425: .cN uucico )
        !          2426: with a moderate
        !          2427: amount of debugging output, putting the output into a temporary
        !          2428: file (\c
        !          2429: .fN /tmp/mhtsa )
        !          2430: and executing a
        !          2431: .cW "tail -f"
        !          2432: command so the
        !          2433: administrator can hit a BREAK to get back to the shell, while
        !          2434: being able to come back at a later time to look at the output.
        !          2435: .PP
        !          2436: If that works, the administrator can attempt to transfer a file
        !          2437: while watching the debugging output.
        !          2438: Proceed as follows
        !          2439: .P1 0
        !          2440: uucp -r some\-file mhtsd!~/some\-name
        !          2441: .P2
        !          2442: This will queue a job but not start the transfer program.
        !          2443: Now proceed as before using
        !          2444: .cN Uutry .
        !          2445: The output can be analyzed to locate problems.
        !          2446: .PP
        !          2447: .fN /usr/spool/uucp/.Admin/errors
        !          2448: contains errors\(em\c
        !          2449: conditions that causes one of the \*(uU programs to abort
        !          2450: (\fIASSERT\fP errors).
        !          2451: An explanation of these is given
        !          2452: in Appendix II along with an explanation of the messages one
        !          2453: can see as output from
        !          2454: .cN "uustat -q" .
        !          2455: Most of these will never occur\(emthey indicate that something is wrong
        !          2456: with your system or the \*(uU software.
        !          2457: However, the
        !          2458: .I PKXSTART
        !          2459: will occur and generally means that the
        !          2460: other side aborted during a conversation in a non-recoverable way;
        !          2461: these can be generally ignored.
        !          2462: .NH
        !          2463: Appendix I: Local Configuration Options
        !          2464: .PP
        !          2465: The
        !          2466: .fN parms.h
        !          2467: header file is used to set up local site
        !          2468: options before a
        !          2469: .cN make
        !          2470: command is attempted.
        !          2471: The file is set up with default settings for a standard
        !          2472: .UX
        !          2473: distribution, however, there are some options that
        !          2474: the local administrator might want to use.
        !          2475: The file has comments to briefly describe the options;
        !          2476: this section contains more details.
        !          2477: .de XX
        !          2478: .IP "\f(CW\\$1\fP\ " 5n
        !          2479: ..
        !          2480: .XX "ATTSV, V7, V8, V9, V10, BSD4_2"
        !          2481: .br
        !          2482: One of these should be defined:
        !          2483: .CW ATTSV
        !          2484: for standard
        !          2485: .UX
        !          2486: systems;
        !          2487: .CW V7
        !          2488: for Version 7 based systems like 32V, Berkeley 4.1 systems;
        !          2489: .CW BSD4_2
        !          2490: for Berkeley 4.2 systems;
        !          2491: .CW V8 ,
        !          2492: .CW V9 ,
        !          2493: .CW V10
        !          2494: for that Edition of Research
        !          2495: .UX
        !          2496: systems.
        !          2497: .XX UUCPUID
        !          2498: There are several places in the code where the uid of ``uucp'',
        !          2499: the owner of the uucp programs, files, and directories,
        !          2500: must be used.
        !          2501: In most cases, the uid can be obtained, but on some systems, when
        !          2502: running as root, the info will not be forthcoming, so this
        !          2503: manifest is used;
        !          2504: it is the uid of the uucp login (again, the owner) from the /etc/passwd
        !          2505: file.
        !          2506: .XX ATTSVKILL
        !          2507: The new lock-file mechanism uses the system call
        !          2508: .cN "kill(0, pid)"
        !          2509: to determine if a process-id in a LCK file is still active.
        !          2510: Standard
        !          2511: .UX
        !          2512: systems provide this facility, but some do not
        !          2513: support it.
        !          2514: Define ATTSVKILL if you system supports the
        !          2515: .cN "kill(0, pid)"
        !          2516: call.
        !          2517: (Note that this is automatically defined if ATTSV is defined.)
        !          2518: .XX NONAP
        !          2519: Define NONAP if you have no high-resolution sleep call.
        !          2520: The standard
        !          2521: .UX
        !          2522: system
        !          2523: does not have this high-resolution sleep, so this
        !          2524: must be defined.
        !          2525: .XX FASTTIMER
        !          2526: This is the device that goes along with the high-resolution timer.
        !          2527: Do not define if for
        !          2528: .UX
        !          2529: systems,
        !          2530: since it is not available.
        !          2531: .XX V7USTAT 
        !          2532: \*(uU uses
        !          2533: .cN ustat
        !          2534: to decide whether there's enough space to receive a
        !          2535: file.
        !          2536: If you're not ATTSV, you can use a setgid program to read the
        !          2537: number of free blocks and free inodes directly off the disk.
        !          2538: If you
        !          2539: choose this course, do not define NOUSTAT;
        !          2540: rather, define V7USTAT to
        !          2541: be the name of that program.
        !          2542: Be sure it accepts 2 args, major and minor
        !          2543: device numbers, and returns two numbers, blocks and inodes,
        !          2544: in "%d %d" format, or you'll never receive another file.
        !          2545: .XX NOUSTAT
        !          2546: Define this if your system does not have a
        !          2547: .cN ustat()
        !          2548: system call.
        !          2549: The standard
        !          2550: .UX
        !          2551: system
        !          2552: has the call;
        !          2553: don't define it for those systems.
        !          2554: .XX "GRPCHK, GRPMIN, GRPMAX"
        !          2555: .br
        !          2556: Define GRPCHK if you want to restrict the ability to read
        !          2557: .fN Systems
        !          2558: information by way of the DEBUG flags.
        !          2559: If you define GRPCHK, then the group-ids GRPMIN and GRPMAX limit
        !          2560: the group-ids for which the
        !          2561: .cN Systems
        !          2562: file password information will be
        !          2563: displayed when the DEBUG option is used.
        !          2564: .XX UNET
        !          2565: Use this to include code for 3com ethernet media.
        !          2566: Appropriate changes must be made in the
        !          2567: .fN makefile
        !          2568: to include the needed routines.
        !          2569: See comments in the
        !          2570: .fN makefile .
        !          2571: .XX DATAKIT
        !          2572: Define DATAKIT if your system is connected to a DATAKIT VCS.
        !          2573: If you use this option, you must also make the appropriate
        !          2574: changes in the
        !          2575: .fN makefile
        !          2576: to access the dk library and loading
        !          2577: of the dio.o routine\(emsee the comments in the makefile.
        !          2578: .XX TCP
        !          2579: Define TCP for BSD systems that have TCP or UNET.
        !          2580: .XX SYTEK
        !          2581: Define SYTEK for systems that access a Sytek network.
        !          2582: .XX TLI
        !          2583: Define this for access to the AT&T Transport Layer Interface
        !          2584: .I without
        !          2585: Streams.
        !          2586: .XX TLIS
        !          2587: Define this for access to the AT&T Transport Layer Interface
        !          2588: .I with
        !          2589: Streams.
        !          2590: .XX DIAL801
        !          2591: This is defined for the standard 801/212-103 dialer interface.
        !          2592: It will be defined by default.
        !          2593: .XX X25
        !          2594: Use this to include code for the X25 media.
        !          2595: Appropriate changes must be made in the
        !          2596: .fN makefile
        !          2597: to include the needed routines.
        !          2598: See comments in the makefile.
        !          2599: .XX DUMB_DN
        !          2600: Define DUMB_DN if your dn driver (801 acu) can't handle '=' character
        !          2601: to wait for dialtone.
        !          2602: .XX DEFAULT_BAUDRATE
        !          2603: This is the baud rate you want to use when both
        !          2604: .fN Systems
        !          2605: file and 
        !          2606: .fN Devices
        !          2607: file specify
        !          2608: .qC Any
        !          2609: for the speed.
        !          2610: .XX M_DEVICEMODE
        !          2611: This is the mode that the device will be set to by the caller
        !          2612: during execution.
        !          2613: .XX S_DEVICEMODE
        !          2614: This is the mode that the device will be set to by the callee
        !          2615: during execution.
        !          2616: .XX R_DEVICEMODE
        !          2617: This is the mode that the device will be left in upon exit if
        !          2618: the current mode can not be obtained using
        !          2619: .cW fstst() .
        !          2620: .XX UUSTAT_TBL
        !          2621: There is a table in
        !          2622: .fN uustat.c
        !          2623: that can hold all machine names that currently
        !          2624: have work or execute files (C. or X.) or have a status file.
        !          2625: If necessary, the table size can be changed.
        !          2626: For machines
        !          2627: with much memory, a large number like 1000 will not hurt much since the
        !          2628: program is not executed often.
        !          2629: For small machines, 256K memory, the number should be much smaller
        !          2630: like 100.
        !          2631: .XX UNAME
        !          2632: Define UNAME if
        !          2633: .cW uname()
        !          2634: should be used to get uucpname;
        !          2635: this will be defined automatically if ATTSV is defined.
        !          2636: .XX RETRYTIME
        !          2637: This is the initial retry after failure time.
        !          2638: Each successive failure will double the current retry time.
        !          2639: The time is given in minutes.
        !          2640: .XX MAXRETRYTIME
        !          2641: This is the high limit to the retry backoff.
        !          2642: .XX ASSERT_MAXRETRYTIME
        !          2643: This is the high limit to the retry backoff when an
        !          2644: .I ASSERT
        !          2645: error occurs.
        !          2646: .XX PATH
        !          2647: This is the path that will be used for
        !          2648: .cW uuxqt
        !          2649: command executions.
        !          2650: .XX DEFAULTCMDS
        !          2651: This is the set of default commands that can be executed 
        !          2652: if none is given for the system name in
        !          2653: .fN Permissions
        !          2654: file.
        !          2655: It is a colon separated list as in
        !          2656: .fN Permissions
        !          2657: file.
        !          2658: .XX HZ
        !          2659: Define HZ to be the number of clock ticks per second;
        !          2660: not needed for standard
        !          2661: .UX
        !          2662: system.
        !          2663: .XX MYNAME
        !          2664: Put in local uucp name of this machine if there is no
        !          2665: .cW /etc/whoami
        !          2666: and no
        !          2667: .cW uname()
        !          2668: call.
        !          2669: This is not needed for standard
        !          2670: .UX
        !          2671: systems.
        !          2672: .XX NOSTRANGERS
        !          2673: Define NOSTRANGERS if you want to reject calls from systems that
        !          2674: are not in your
        !          2675: .fN Systems
        !          2676: file.
        !          2677: If defined, NOSTRANGERS should be the name
        !          2678: of the program to execute when such a system dials in.
        !          2679: The argument
        !          2680: to the program will be the name of the calling system.
        !          2681: The
        !          2682: .fN unknown.c
        !          2683: program is supplied and installed in
        !          2684: .fN /usr/lib/uucp
        !          2685: as
        !          2686: .cN remote.unknown .
        !          2687: .XX LMTUUXQT
        !          2688: Define LMTUUXQT to be the name of a file that contains the number
        !          2689: (in \*(aS) of simultaneous
        !          2690: .cW uuxqt 's
        !          2691: that you will permit.
        !          2692: If it is
        !          2693: not defined, there may be
        !          2694: .I many
        !          2695: .cW uuxqt 's
        !          2696: running.
        !          2697: Two is reasonable number.
        !          2698: The system will create the default file
        !          2699: and set the limit to 2.
        !          2700: .XX LMTUUSCHED
        !          2701: Define LMTUUSCHED to be the name of a file that contains the number
        !          2702: (in \*(aS) of simultaneous
        !          2703: .cW uusched 's
        !          2704: that you will permit.
        !          2705: If it is
        !          2706: not defined, there may be
        !          2707: .I many
        !          2708: .cW uusched 's
        !          2709: running.
        !          2710: Two is reasonable number.
        !          2711: The system will create the default file
        !          2712: and set the limit to 2.
        !          2713: The more you permit the higher the load on the system;
        !          2714: each
        !          2715: .cW uusched
        !          2716: has one
        !          2717: .cW uucico
        !          2718: associated with it.
        !          2719: .XX USRSPOOLLOCKS
        !          2720: Define USRSPOOLLOCKS if you like your lock files in
        !          2721: .fN /usr/spool/locks .
        !          2722: Be sure other programs such as
        !          2723: .cW cu
        !          2724: and
        !          2725: .cW ct
        !          2726: know about this.
        !          2727: .XX PKSPEEDUP
        !          2728: Define PKSPEEDUP if you want to try the recommended speedup
        !          2729: in
        !          2730: .cW pkcget .
        !          2731: This entails sleeping between reads at low baud rates.
        !          2732: .NH 1
        !          2733: Appendix II: Error Messages
        !          2734: .NH 2
        !          2735: Fatal System Errors
        !          2736: .PP
        !          2737: These are the ASSERT error messages that can occur.
        !          2738: The will appear in the error log (\c
        !          2739: .fN /usr/spool/uucp/.Admin/errors ).
        !          2740: When the errors occur, the program will abort\(emthe file name,
        !          2741: sccsid, line number will appear in the error message along with the
        !          2742: following text.
        !          2743: In most cases, these result from file system problems;
        !          2744: use the
        !          2745: .cW  errno ,
        !          2746: when present as indicated below, to check out the problem.
        !          2747: .de XX
        !          2748: .ie \\n(.$-1 .IP "\f(CW\\$1\fR(\fIerrno\fR)" 5n
        !          2749: .el .IP "\f(CW\\$1\fP" 5n
        !          2750: .br
        !          2751: ..
        !          2752: .XX "CAN'T OPEN" x
        !          2753: An
        !          2754: .I open
        !          2755: or
        !          2756: .I fopen
        !          2757: failed.
        !          2758: .XX "CAN'T WRITE" x
        !          2759: A
        !          2760: .I write ,
        !          2761: .I fwrite ,
        !          2762: or
        !          2763: .I fprintf
        !          2764: etc failed.
        !          2765: .XX "CAN'T READ" x
        !          2766: A
        !          2767: .I read ,
        !          2768: .I fgets ,
        !          2769: etc failed.
        !          2770: .XX "CAN'T CREATE" x
        !          2771: A
        !          2772: .I creat
        !          2773: failed.
        !          2774: .XX "CAN'T ALLOCATE"
        !          2775: A dynamic allocation failed.
        !          2776: .XX "CAN'T LOCK"
        !          2777: An attempt to make a LCK (lock) file failed.
        !          2778: In some
        !          2779: cases, this is a fatal error.
        !          2780: .XX "CAN'T STAT" x
        !          2781: A
        !          2782: .I stat
        !          2783: failed.
        !          2784: .XX "CAN'T CHMOD" x
        !          2785: A
        !          2786: .I chmod()
        !          2787: failed.
        !          2788: .XX "CAN'T CHOWN" x
        !          2789: A
        !          2790: .I chown
        !          2791: failed.
        !          2792: .XX "CAN'T LINK" x
        !          2793: A
        !          2794: .I link
        !          2795: failed.
        !          2796: .XX "CAN'T CHDIR". x
        !          2797: A
        !          2798: .I chdir
        !          2799: failed.
        !          2800: .XX "CAN'T UNLINK" x
        !          2801: A
        !          2802: .I unlink
        !          2803: failed.
        !          2804: .XX "WRONG ROLE"
        !          2805: This is an internal logic problem.
        !          2806: .XX "CAN'T MOVE TO CORRUPTDIR"
        !          2807: An attempt to move some bad
        !          2808: .fN C.
        !          2809: or
        !          2810: .fN X.
        !          2811: files
        !          2812: to the
        !          2813: .fN .Corrupt
        !          2814: directory failed\(emthe directory is
        !          2815: probably missing or has wrong modes or owner
        !          2816: (\c
        !          2817: .fN /usr/spool/uucp/.Corrupt ).
        !          2818: .XX "CAN'T CLOSE" x
        !          2819: A
        !          2820: .I close
        !          2821: or
        !          2822: .I fclose
        !          2823: failed.
        !          2824: .XX "FILE EXISTS"
        !          2825: The creation of a
        !          2826: .fN C.
        !          2827: or
        !          2828: .fN D.
        !          2829: file is attempted, but the file exists.
        !          2830: This
        !          2831: occurs when there is a problem with the sequence file
        !          2832: access\(emusually a software error.
        !          2833: .XX "No uucp server"
        !          2834: A TCP call is attempted, but there is no server for \*(uU.
        !          2835: .XX "BAD UID"
        !          2836: The uid can not be found in the
        !          2837: .fN /etc/passwd
        !          2838: file.
        !          2839: The file system is in trouble, or the
        !          2840: .fN /etc/passwd
        !          2841: file is inconsistent.
        !          2842: .XX "BAD LOGIN_UID"
        !          2843: same as previous.
        !          2844: .XX "ULIMIT TOO SMALL"
        !          2845: The ulimit for the current user/process is too small;
        !          2846: file transfers may fail, so transfer is not
        !          2847: attempted.
        !          2848: .XX "BAD LINE"
        !          2849: There is a bad line in the
        !          2850: .fN Devices
        !          2851: file;
        !          2852: there are not enough arguments on one or more lines.
        !          2853: .XX "FSTAT FAILED IN EWRDATA"
        !          2854: .br
        !          2855: There is something wrong with the ethernet media.
        !          2856: .XX "SYSLST OVERFLOW"
        !          2857: An internal table in
        !          2858: .cW gename.c
        !          2859: overflowed.
        !          2860: A big/strange request was attempted\(emsend it with MR to the
        !          2861: appropriate place.
        !          2862: .XX "TOO MANY SAVED C FILES"
        !          2863: .br
        !          2864: same as previous
        !          2865: .XX "RETURN FROM fixline ioctl"
        !          2866: .br
        !          2867: An
        !          2868: .cW ioctl
        !          2869: call,
        !          2870: which should never fail, failed.
        !          2871: There is a system or driver problem.
        !          2872: .XX "BAD SPEED"
        !          2873: A bad line speed appears in the
        !          2874: .fN Devices /
        !          2875: .fN Systems
        !          2876: files.
        !          2877: .XX "PERMISSIONS file: BAD OPTION--"
        !          2878: .br
        !          2879: There is a bad line or option in the
        !          2880: .fN Permissions
        !          2881: file.
        !          2882: Fix it immediately!
        !          2883: .XX "PKCGET READ"
        !          2884: The other side probably hung up;
        !          2885: don't worry about it.
        !          2886: .XX "SYSTAT OPEN FAIL"
        !          2887: There is a problem with the modes of
        !          2888: .fN /usr/lib/uucp/.Status ,
        !          2889: or there
        !          2890: is a file with bad modes in the directory.
        !          2891: .XX "TOO MANY LOCKS"
        !          2892: There is some internal problem!
        !          2893: Send in an MR.
        !          2894: .XX "CAN NOT ALLOCATE FOR"
        !          2895: There is some kernel problem;
        !          2896: a call to
        !          2897: .cW calloc()
        !          2898: failed.
        !          2899: .XX "XMV ERROR"
        !          2900: There is a problem with some file or directory;
        !          2901: It is likely the spool directory, since the modes of
        !          2902: the destinations were suppose to be checked before
        !          2903: the program attempts this.
        !          2904: .XX "CAN'T FORK"
        !          2905: An attempt to
        !          2906: .cW fork
        !          2907: or
        !          2908: .cW exec
        !          2909: failed.
        !          2910: The current job should not be lost, but will be attempted later
        !          2911: (\c
        !          2912: .cW uuxqt ).
        !          2913: No action need be taken.
        !          2914: .NH 2
        !          2915: System Status Messages
        !          2916: .PP
        !          2917: These are the messages that will appear in the system status file:
        !          2918: .XX "OK"
        !          2919: Things are OK.
        !          2920: .XX "NO DEVICES AVAILABLE"
        !          2921: There is no currently available device for the call.
        !          2922: Check to see that there is a valid device in
        !          2923: .fN Devices
        !          2924: file
        !          2925: for this system.
        !          2926: .XX "WRONG TIME TO CALL"
        !          2927: self explanatory
        !          2928: .XX "TALKING"
        !          2929: self explanatory
        !          2930: .XX "SOME FAILURE"
        !          2931: to be determined
        !          2932: .XX "BAD SEQUENCE CHECK"
        !          2933: If sequence checking is used between systems, the
        !          2934: sequence numbers do not agree.
        !          2935: (This is almost never used.)
        !          2936: .XX "CALLER SCRIPT FAILED"
        !          2937: The negotiations with the modem/network specified in the
        !          2938: .fN Dialers
        !          2939: file did not complete successfully.
        !          2940: This is similar to DIAL FAILED.
        !          2941: It may occassionally fail, but if it never succeeds, there may
        !          2942: be a problem with the entry in the
        !          2943: .fN Dialers
        !          2944: file.
        !          2945: .XX "LOGIN FAILED"
        !          2946: The login for the given machine failed.
        !          2947: It could
        !          2948: be a wrong login/passwd, wrong number, a very slow
        !          2949: machine, or failure in getting through the
        !          2950: .cW login-script .
        !          2951: .XX "CONVERSATION FAILED"
        !          2952: The conversation failed after successful startup.
        !          2953: This usually means that one side went down, the program
        !          2954: aborted, or the line just hung up.
        !          2955: .XX "DIAL FAILED"
        !          2956: The remote never answered.
        !          2957: It could be a bad dialer or
        !          2958: the wrong phone number.
        !          2959: .XX "BAD LOGIN/MACHINE COMBINATION"
        !          2960: .br
        !          2961: The machine called us with login/machine name
        !          2962: that does not agree with our
        !          2963: .fN Permissions
        !          2964: file.
        !          2965: They could be trying to masquerade!
        !          2966: .XX "DEVICE LOCKED"
        !          2967: The calling device is currently locked and in use
        !          2968: by some process.
        !          2969: .XX "ASSERT ERROR"
        !          2970: An
        !          2971: .I ASSERT
        !          2972: error occurred\(emsee
        !          2973: .fN /usr/spool/uucp/.Admin/errors .
        !          2974: .XX "SYSTEM NOT IN Systems"
        !          2975: The system name is not in
        !          2976: .fN Systems .
        !          2977: .XX "CAN'T ACCESS DEVICE"
        !          2978: The device tried does not exist,
        !          2979: or the modes are wrong.
        !          2980: .XX "DEVICE FAILED"
        !          2981: The open of the device failed.
        !          2982: .XX "WRONG MACHINE NAME"
        !          2983: The called machine is reporting a different
        !          2984: name in the
        !          2985: .cW Shere=
        !          2986: message.
        !          2987: .XX "CALLBACK REQUIRED"
        !          2988: The called machine requires that it call us.
        !          2989: .XX "REMOTE HAS A LCK FILE FOR ME"
        !          2990: .br
        !          2991: The remote site has a
        !          2992: .fN LCK
        !          2993: file for this
        !          2994: system.
        !          2995: They could be trying to call us.
        !          2996: If they have an older version of \(*uU, the process
        !          2997: that was talking to us may have failed, leaving the
        !          2998: .fN LCK
        !          2999: file.
        !          3000: If they have the new \*(uU, and they are
        !          3001: not trying us, then the process that was talking to
        !          3002: us is hung!
        !          3003: .XX "REMOTE DOES NOT KNOW ME"
        !          3004: .br
        !          3005: The remote site does not have our name in their
        !          3006: .fN Systems
        !          3007: file.
        !          3008: .XX "REMOTE REJECT AFTER LOGIN"
        !          3009: .br
        !          3010: The login we used does not correspond to what
        !          3011: the remote site is expecting.
        !          3012: .XX "REMOTE REJECT, UNKNOWN MESSAGE"
        !          3013: .br
        !          3014: The remote site rejected us for unknown
        !          3015: reason\(emthey are probably not running a standard
        !          3016: version of \*(uU.

unix.superglobalmegacorp.com

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