|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.