Annotation of researchv10dc/vol2/uucp/admin.ms, revision 1.1.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.