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