|
|
1.1 ! root 1: .\" Copyright (c) 1986 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)implement.ms 6.4 (Berkeley) 8/27/86 ! 6: .\" ! 7: .ds UU UUCP ! 8: .ds Uu U\s-2UCP\s+2 ! 9: .ds uu \s-2UUCP\s+2 ! 10: .TL ! 11: Installation and Operation of \*(UU ! 12: .br ! 13: 4.3BSD Edition ! 14: .AU ! 15: D. A. Nowitz ! 16: .AI ! 17: AT&T Bell Laboratories ! 18: Murray Hill, New Jersey 07974 ! 19: .AU ! 20: Carl S. Gutekunst ! 21: .AI ! 22: Communications Software Research and Development ! 23: Pyramid Technology Corporation ! 24: Mountain View, California 94039 ! 25: .AB ! 26: \*(Uu is a series of programs designed to permit communication ! 27: between ! 28: .UX ! 29: systems using a variety of communications links. ! 30: \*(Uu provides batched, error free file transfers and remote command ! 31: execution. ! 32: It is well suited for tasks such as electronic mail, public news networks, ! 33: and software distribution, particularly when only slow, ! 34: low-cost communication links are available (e.g., 1200 baud dial-up). ! 35: .PP ! 36: This document describes the 4.3BSD version of \*(Uu. ! 37: This is a distant but direct descendent of the ``second implementation'' ! 38: of \*(Uu developed by D. A. Nowitz at AT&T Bell Laboratories. ! 39: A number of other \*(Uu versions are in common usage; these are discussed ! 40: only to the extent that they affect administration of 4.3BSD systems. ! 41: .LP ! 42: Revised August 24, 1986 ! 43: .AE ! 44: .LP ! 45: .OH 'Installation and Operation of UUCP''SMM:9-%' ! 46: .EH 'SMM:9-%''Installation and Operation of UUCP' ! 47: .ne 5 ! 48: .NH ! 49: \*(UU OVERVIEW ! 50: .PP ! 51: \*(Uu is a batch-type operation. ! 52: Users issue commands that are queued in a spool directory for processing ! 53: by background daemons. ! 54: .LP ! 55: \fIUucp\fP (UNIX-to-UNIX Copy) and \fIuux\fP (UNIX-to-UNIX Execution) ! 56: provide the user interface to \*(Uu. ! 57: .I Uucp ! 58: has syntax and semantics similar to the standard ! 59: .UX ! 60: utility \fIcp\fP(1), with the added ability to prefix filenames with ! 61: system names. ! 62: Similarly, \fIuux\fP mimics the conventions of \fIsh\fP(1), and allows ! 63: commands to be prefixed with system names. ! 64: .LP ! 65: \fIUucico\fP (Copy-In, Copy-Out) is the primary \*(Uu daemon. ! 66: It processes the requests queued by \fIuucp\fP and \fIuux\fP, ! 67: initiates calls to remote systems, transfers files, and forks other ! 68: daemons to execute \fIuux\fP-requested commands. ! 69: \fIUucico\fP also acts as the \*(Uu ``shell'' when remote systems call in ! 70: to requests transfers. ! 71: .LP ! 72: Three types of files are used in \*(Uu operation. ! 73: \fIControl files\fP describe the \*(Uu environment, including ! 74: known remote hosts, available devices, and remote file access permissions. ! 75: Control files are relatively static; they are generally changed only by the ! 76: system administrator. ! 77: \fISpool files\fP (also called \fIQueue files\fP) contain transfer requests ! 78: and data; they are created and deleted as necessary ! 79: by \fIuucp\fP, \fIuux\fP, and \fIuucico\fP. ! 80: \fILog files\fP accumulate a history of \*(Uu activity; these tend to ! 81: grow forever if not periodically cleaned up. ! 82: .LP ! 83: Spool files are further divided into three types: ! 84: \fIWork files\fP ! 85: contain directions for file transfers between systems. ! 86: Every invocation of \fIuucp\fP or \fIuux\fP creates one or more work files. ! 87: \fIData files\fP contain data for transfer to or from remote systems. ! 88: \fIExecution files\fP contain directions for ! 89: .UX ! 90: command executions which ! 91: involve the resources of one or more systems. ! 92: Execution files are created only by \fIuux\fP. ! 93: .\"=========================================================================== ! 94: .\" SECTION 2: USER UTILITIES ! 95: .\"=========================================================================== ! 96: .ne 5 ! 97: .NH ! 98: USER UTILITIES ! 99: .PP ! 100: \*(Uu includes a total of ten ``primary'' utilities, that is, ten ! 101: utilities for general users. ! 102: All reside in the \fB/usr/bin\fP directory, where they are easily accessible. ! 103: This section provides detailed implementation descriptions for the more ! 104: important commands; see the corresponding \fIman\fP pages for additional ! 105: information. ! 106: .LP ! 107: The following two commands queue transfer requests: ! 108: .RS ! 109: .IP uucp(1C) 15 ! 110: UNIX-to-UNIX File Copy. ! 111: One of more \fIcontrol files\fP are created, containing names of files to be ! 112: transferred. ! 113: When necessary, local files are copied into \fIdata files\fP for ! 114: transmission. ! 115: .IP uux(1C) ! 116: Execute command. ! 117: An \fIexecute file\fP is created, containing a ! 118: .UX ! 119: command to be executed and its arguments. ! 120: A \fIcontrol file\fP is created that includes all files that must be ! 121: transferred to execute the command, including the \fIexecute file\fP itself. ! 122: When necessary, local files are copied into \fIdata files\fP for ! 123: transmission. ! 124: Any output from the command will also be written to \fIdata files\fP. ! 125: .RE ! 126: .LP ! 127: The following four commands provide \*(Uu status information: ! 128: .RS ! 129: .IP uulog(1C) 15 ! 130: Display selected information from the \*(Uu log. ! 131: .IP uuname(1C) ! 132: Display the names of all remote hosts that are directly accessible via \*(Uu. ! 133: .IP uusnap(8C) ! 134: Provide a snapshot of the current queue, including ! 135: the number of work files, data files, and execute files for each site. ! 136: .IP uuq(1C) ! 137: A variant of \fIuusnap\fP, lists files and \fIuux\fP commands ! 138: queued for each site. ! 139: \fIUuq\fP also permits the \*(Uu administrator to delete jobs. ! 140: .RE ! 141: .LP ! 142: The following four commands provide miscellaneous support services: ! 143: .RS ! 144: .IP uudecode(1C) 15 ! 145: The decoder for files created by \fIuuencode\fP, below. ! 146: .IP uuencode(1C) ! 147: A filter to convert binary files into printable ASCII. ! 148: This is useful when transferring object files over communications links ! 149: that do not support 8-bit transfers. ! 150: .IP uupoll(8C) ! 151: A user utility to conveniently fork the \*(Uu daemon, \fIuucico\fP. ! 152: .IP uusend(1C) ! 153: A utility to send files to remote sites more than one ``hop'' distant. ! 154: .RE ! 155: .\"=========================================================================== ! 156: .NH 2 ! 157: Uucp - UNIX to UNIX File Copy ! 158: .LP ! 159: The \fIuucp\fP ! 160: command is the user's primary interface with the system. ! 161: The ! 162: .I uucp ! 163: command was designed to look like ! 164: .I cp ! 165: to the user. ! 166: The syntax is ! 167: .IP ! 168: .I uucp\ \ ! 169: .B [ ! 170: option ! 171: .B ] ! 172: \ ...\ \ source\ ...\ \ destination ! 173: .LP ! 174: where the source and destination ! 175: may contain the prefix \fIsystem-name\fP\fB!\fP ! 176: which indicates the system on which the file ! 177: or files reside ! 178: or where they will be copied. ! 179: .LP ! 180: The options interpreted by ! 181: .I uucp ! 182: are: ! 183: .RS ! 184: .IP \-f 10 ! 185: Don't make directories when copying the file. ! 186: The default is to make the necessary directories. ! 187: .IP \-C ! 188: Copy source files to the spool directory. ! 189: The default is to use the specified source when the actual ! 190: transfer takes place. ! 191: .IP \-g\fIgrade\fR ! 192: Put ! 193: .I grade ! 194: in as the grade in the name of the work file. ! 195: This is a single character in the range \fB[0-9][A-Z][a-z]\fP. ! 196: The \fIgrade\fP will be used by \fIuucico\fP to establish the ! 197: priority of requests. ! 198: \fB0\fP is the highest (best) grade; \fBz\fP is the lowest (worst). ! 199: The default ! 200: .I grade ! 201: for ! 202: .I uucp ! 203: is \fBn\fP. ! 204: .IP \-m ! 205: Send mail on completion of the work. ! 206: .IP \-n\fIuser\fR ! 207: Notify \fIuser\fR on the destination system that a file was sent. ! 208: .LP ! 209: The following options are used primarily for debugging, or when ! 210: .I uucp ! 211: is invoked from other programs: ! 212: .IP \-r 10 ! 213: Queue the job but do not start \fIuucico\fP. ! 214: The assumption is that \fIuucico\fP will be started at a later time, perhaps ! 215: by \fIcron\fP(8) or \fIuupoll\fP. ! 216: .IP \-s\fIdir\fR ! 217: Use directory ! 218: .I dir ! 219: for the top level spool directory. ! 220: .IP \-x\fInum\fR ! 221: .I Num ! 222: is the level of debugging output desired. ! 223: This option requires the user to have read permission to the \*(Uu ! 224: control file \fIL.sys\fP. ! 225: .RE ! 226: .LP ! 227: The destination may be a directory name, ! 228: in which case the file name is taken from the last part of the ! 229: source's name. ! 230: The source ! 231: name may contain special shell characters ! 232: such as ``\fB?*[]\fR''; ! 233: these and other shell characters such as ``\fB!<>\fP'' will need to be quoted ! 234: or escaped. ! 235: If a source argument has a ! 236: \fIsystem-name\fP\fB!\fP ! 237: prefix for a remote system, ! 238: the file name expansion will be done on the remote system. ! 239: .LP ! 240: The command ! 241: .IP "" 12 ! 242: uucp\ \ *.c\ \ usg!/usr/dan ! 243: .LP ! 244: will set up the transfer of all files whose names end with ``.c'' ! 245: to the ``/usr/dan'' directory on the ``usg'' machine. ! 246: .LP ! 247: The source and/or destination names may also contain a \fB~\fP\fIuser\fP ! 248: prefix. ! 249: This translates to the login directory on ! 250: the specified system. ! 251: A lone \fB~\fP prefix is expanded to the name of the specified system's ! 252: public access directory, usually ! 253: \fB/usr/spool/uucppublic\fP. ! 254: For names with partial path-names, ! 255: the current directory is prepended to the file name. ! 256: File names with ! 257: .I ../ ! 258: are not permitted. ! 259: .LP ! 260: The command ! 261: .IP "" 12 ! 262: uucp\ \ usg!~dan/*.h\ \ ~dan ! 263: .LP ! 264: will set up the transfer of files whose names end with ``.h'' ! 265: in dan's login ! 266: directory on system ``usg'' to dan's local ! 267: login directory. ! 268: .LP ! 269: For each source file, ! 270: the program will check the source and destination ! 271: file-names ! 272: and the system-part of each to ! 273: classify the work into one of five types: ! 274: .RS ! 275: .IP [1] ! 276: Copy source to destination on local system. ! 277: .IP [2] ! 278: Receive files from a remote system. ! 279: .IP [3] ! 280: Send files to a remote system. ! 281: .IP [4] ! 282: Send files from remote system ! 283: to another remote system. ! 284: .IP [5] ! 285: Receive files from remote system when the source pathname ! 286: contains special shell characters as ! 287: mentioned above. ! 288: .RE ! 289: .LP ! 290: After the work has been set up in the spool directories, ! 291: the \*(Uu daemon \fIuucico\fP is started to try to contact the other ! 292: machine to execute the work (unless the \-r option ! 293: was specified). ! 294: .SH ! 295: Type 1 ! 296: .LP ! 297: .I Uucp ! 298: makes a copy of the file. ! 299: The ! 300: .I \-m ! 301: option is not honored in this case. ! 302: .SH ! 303: Type 2 ! 304: .LP ! 305: A one line ! 306: .I "work file" ! 307: is created for each file requested and put in the \fBC.\fP spool directory ! 308: with the following fields, each separated by a blank. ! 309: (All ! 310: .I "work files" ! 311: and ! 312: .I "execute files" ! 313: use a blank as the field separator.) ! 314: .RS ! 315: .IP [1] ! 316: R ! 317: .IP [2] ! 318: The full path-name of the source or a ~user/path-name. ! 319: The ! 320: .I ~user ! 321: part will be expanded on the remote system. ! 322: .IP [3] ! 323: The full path-name of the local destination file. ! 324: If the ! 325: .I ~user ! 326: notation is used, it will be immediately ! 327: expanded to be the login directory for the user. ! 328: .IP [4] ! 329: The user's login name. ! 330: .IP [5] ! 331: A `\-' followed by an option list. ! 332: .RE ! 333: .KS ! 334: .SH ! 335: Type 3 ! 336: .LP ! 337: For each source file, a ! 338: .I "work file" ! 339: is created. ! 340: A \fB\-C\fP option on the ! 341: .I uucp ! 342: command will cause the ! 343: .I "data file" ! 344: to be copied into the spool directory ! 345: and the file to be transmitted from ! 346: the copy; the copy is deleted when the transfer completes. ! 347: The fields of each entry are given below. ! 348: .RS ! 349: .IP [1] ! 350: S ! 351: .IP [2] ! 352: The full-path name of the source file. ! 353: .IP [3] ! 354: The full-path name of the destination or ! 355: ~user/file-name. ! 356: .IP [4] ! 357: The user's login name. ! 358: .IP [5] ! 359: A `\-' followed by an option list. ! 360: .IP [6] ! 361: The full path-name of the local source file. ! 362: If the ! 363: .I ~user ! 364: notation is used, it will be immediately ! 365: expanded to be the login directory for the user. ! 366: If the \fB\-C\fP option was used, this will be the name of a ! 367: .I "data file" ! 368: in the spool directory. ! 369: .IP [7] ! 370: The file mode bits of the source file ! 371: in octal print format ! 372: (e.g. 0666). ! 373: .IP [8] ! 374: The user to notify on the remote system that the transfer has completed. ! 375: .RE ! 376: .KE ! 377: .SH ! 378: Type 4 and Type 5 ! 379: .LP ! 380: .I Uucp ! 381: generates a ! 382: .I uucp ! 383: command and sends it to the remote machine; ! 384: the remote ! 385: .I uucico ! 386: executes the ! 387: .I uucp ! 388: command. ! 389: .\"=========================================================================== ! 390: .NH 2 ! 391: Uux - UNIX To UNIX Execution ! 392: .LP ! 393: The \fIuux\fP ! 394: command is used to set up the execution of a ! 395: .UX ! 396: command ! 397: where the execution machine and/or some of the ! 398: files are remote. ! 399: The syntax of the uux command is ! 400: .IP ! 401: .I uux\ \ ! 402: .B [ ! 403: \- ! 404: .B "] [" ! 405: option ! 406: .B ] ! 407: \ ...\ \ command-string ! 408: .LP ! 409: where the command-string is made up of one or more arguments. ! 410: All special shell characters such as ``<>|*?!'' must be quoted ! 411: either by quoting the entire command-string ! 412: or quoting the character as a separate argument. ! 413: Within the command-string, the command and file names may ! 414: contain a ! 415: \fIsystem-name\fP\fB!\fP ! 416: prefix. ! 417: All arguments which do not contain a ``!'' will not ! 418: be treated as files. ! 419: (They will not be copied to the execution machine.) ! 420: The `\-' is used to indicate that the standard input ! 421: for ! 422: .I command-string ! 423: should be inherited from the standard input ! 424: of the ! 425: .I uux ! 426: command. ! 427: .LP ! 428: The options, used mostly for debugging and by other programs, are: ! 429: .RS ! 430: .IP \-a\fIname\fP 10 ! 431: Use \fIname\fP as the requestor of the \fIuux\fP command, instead of the ! 432: real system and login names. ! 433: Unlike most other \*(Uu arguments, \fIname\fP may consist of a chain of ! 434: system names separated by `!' characters, as in: ! 435: .IP \ 15 ! 436: uux\ \ \-\ \ \-r\ \ \-aihnp4!decwrl!pyramid!csg\ \ seismo!rmail\ \ rick ! 437: .IP \-C 10 ! 438: Copy source files to the spool directory. ! 439: Same as for \fIuucp\fP. ! 440: .IP \-g\fIgrade\fR ! 441: Put ! 442: .I grade ! 443: in as the grade in the name of the work file. ! 444: Same as for \fIuucp\fP. ! 445: The default ! 446: .I grade ! 447: for ! 448: .I uux ! 449: is \fBA\fP. ! 450: .IP \-n ! 451: Do not mail an acknowledgement to the requestor of the command. ! 452: Normally the execution daemon, \fIuuxqt\fP, will mail a message ! 453: to the user who entered the \fIuux\fP command. ! 454: This message includes the status return value that the program exited with. ! 455: The \fB\-n\fP option requests that this message not be sent. ! 456: .IP \-r ! 457: Do not start the \*(Uucp daemons \fIuucico\fP(8C) or \fIuuxqt\fP(8C) ! 458: after queuing the job. ! 459: .IP \-x\fInum\fR ! 460: Num is the level of debugging output desired. ! 461: .IP \-z ! 462: Mail an acknowledgement to the requestor only if the command fails, that ! 463: is, the command exits with a non-zero status. ! 464: .RE ! 465: .LP ! 466: The command ! 467: .IP "" 12 ! 468: pr\ \ abc\ \ |\ \ uux\ \ \-\ \ usg!lpr ! 469: .LP ! 470: will set up the output of ``pr abc'' ! 471: as standard input to an lpr command ! 472: to be executed on system ``usg''. ! 473: .LP ! 474: .I Uux ! 475: generates an ! 476: .I "execute file" ! 477: which contains the ! 478: names of the files required ! 479: for execution (including standard input), ! 480: the user's login name, the destination ! 481: of the standard output, and the command to be executed. ! 482: This file is either put in the \fBX.\fP spool directory ! 483: for local execution, ! 484: or in the \fBD.\fP\fIhostname\fP\fBX\fP directory ! 485: for transfer to the remote system. ! 486: .LP ! 487: For required files which are not on the execution machine, ! 488: .I uux ! 489: will generate receive command files (type 2 above). ! 490: These command-files will be put on the execution machine and ! 491: executed by ! 492: \fIuucico\fP. ! 493: (This will work only if the local system has permission ! 494: to put files in the remote spool directory as controlled ! 495: by the remote ! 496: \fIUSERFILE\fP.) ! 497: .LP ! 498: The ! 499: .I "execute file" ! 500: will be processed ! 501: by the ! 502: \fIuuxqt\fP(8C) ! 503: program on the execution machine. ! 504: It is made up of several lines, ! 505: each of which contains an identification character ! 506: and one or more arguments. ! 507: The order of the lines in the file is not relevant ! 508: and some of the lines may not be present. ! 509: Each line is described below. ! 510: .RS ! 511: .SH ! 512: User Line ! 513: .IP ! 514: U\ \ user\ \ system ! 515: .LP ! 516: where the ! 517: .I user ! 518: and ! 519: .I system ! 520: are the requestor's login name and system. ! 521: .SH ! 522: Required File Line ! 523: .IP ! 524: F file-name real-name ! 525: .LP ! 526: where the ! 527: .I file-name ! 528: is the generated name of a file for the execute machine ! 529: and ! 530: .I real-name ! 531: is the last part of the actual file name (contains no ! 532: path information). ! 533: Zero or more of these lines may be present in the ! 534: .I "execute file" . ! 535: The ! 536: .I uuxqt ! 537: program will check for the existence of all required ! 538: files before the command is executed. ! 539: .SH ! 540: Standard Input Line ! 541: .IP ! 542: I\ \ file-name ! 543: .LP ! 544: The standard input is either specified by a `<' in the ! 545: command-string or inherited from the standard input of the ! 546: .I uux ! 547: command if the `\-' option is used. ! 548: If a standard input is not specified, ! 549: .B /dev/null ! 550: is used. ! 551: .SH ! 552: Standard Output Line ! 553: .IP ! 554: O\ \ file-name\ \ system-name ! 555: .LP ! 556: The standard output is specified by a `>' within the ! 557: command-string. ! 558: If a standard output is not specified, ! 559: .B /dev/null ! 560: is used. ! 561: (Note \- the use of ``>>'' is not implemented.) ! 562: .SH ! 563: Status Return Line ! 564: .IP ! 565: N ! 566: .LP ! 567: Normally \fIuuxqt\fP mails an acknowledgement message to the ! 568: requestor after the command completes. ! 569: The message includes the status return value that the program exited with. ! 570: This line inhibits mailing of the acknowledgement message. ! 571: It is generated by the \fB-n\fP option of \fIuux\fP; ! 572: it is also quietly assumed by \fIuuxqt\fP on the command \fBrmail\fP. ! 573: .SH ! 574: Error Status Return Line ! 575: .IP ! 576: Z ! 577: .LP ! 578: A variant of the \fIStatus Return\fP line, this line indicates that ! 579: an acknowledgement should be mailed only if the command's status ! 580: return is non-zero, i.e., the program exited with an error. ! 581: This line is generated by the \fB-z\fP option of \fIuux\fP. ! 582: It is also quietly assumed by \fIuuxqt\fP on the command \fBrnews\fP. ! 583: If both the \fBZ\fP and \fBN\fP lines appear, the \fBZ\fP line has ! 584: precedence. ! 585: .SH ! 586: Requestor Line ! 587: .IP ! 588: R\ \ requestor ! 589: .LP ! 590: where ! 591: .I requestor ! 592: is a complete return mailing address to the original requestor. ! 593: This line is generated by the \fB-a\fP option of \fIuux\fP, and is used ! 594: to override the mail return address implied by the \fIUser\fP line. ! 595: This is commonly used by mailers and programs like \fIuusend\fP that ! 596: know how to ``hop'' a file from system to system. ! 597: .SH ! 598: Command Line ! 599: .IP ! 600: C\ \ command\ \ ! 601: .B [ ! 602: arguments ! 603: .B ] ! 604: \ ... ! 605: .LP ! 606: The arguments are those specified in the command-string. ! 607: The standard input and standard output will not appear on this ! 608: line. ! 609: All ! 610: .I "required files" ! 611: will be moved to the execution directory (a subdirectory ! 612: of the spool directory) ! 613: and the ! 614: .UX ! 615: command is executed using the Shell specified in the ! 616: .I uucp.h ! 617: header file (usually \fI/bin/sh\fP). ! 618: In addition, a shell ``PATH'' statement is prepended ! 619: to the command line. ! 620: .LP ! 621: After execution, the temporary standard output file is copied to ! 622: or set up to be ! 623: sent to the proper place. ! 624: .RE ! 625: .\"=========================================================================== ! 626: .\" SECTION 3: SYSTEM UTILITIES ! 627: .\"=========================================================================== ! 628: .ne 5 ! 629: .NH ! 630: SYSTEM AND ADMINISTRATIVE UTILITIES ! 631: .LP ! 632: \*(Uu includes four system utilities; ! 633: these are not normally referenced by users. ! 634: All except \fIuucpd\fP reside in the \*(Uu administrative directory, ! 635: \fB/usr/lib/uucp\fP. ! 636: These include: ! 637: .RS ! 638: .IP uucico(8C) 15 ! 639: Copy In, Copy Out. This is the primary \*(Uu daemon. ! 640: .IP uuclean(8C) ! 641: A handy utility to clean up the \*(Uu spool directories. ! 642: .IP uucpd ! 643: The \*(Uu TCP/IP daemon. ! 644: This daemon ``answers'' the connection request from a remote \fIuucico\fP ! 645: to a TCP/IP socket. ! 646: It is functionally a stripped-down version of \fIrlogind\fP(8) that provides ! 647: full 8-bit communication. ! 648: (Note: this utility does not have a \fIman\fP page.) ! 649: .IP uuxqt(8C) ! 650: Execution Daemon. ! 651: This is forked by \fIuucico\fP to interpret execution files ! 652: transferred from a remote system. ! 653: .RE ! 654: .\"=========================================================================== ! 655: .NH 2 ! 656: Uucico - Copy In, Copy Out (\*(Uu Daemon) ! 657: .LP ! 658: .I Uucico ! 659: is the ``heart'' of the \*(Uu system. ! 660: The program performs the following major functions: ! 661: .RS ! 662: .IP -\ \ 3 ! 663: Scan the spool directory for work. ! 664: .IP -\ \ ! 665: Place a call to a remote system. ! 666: .IP -\ \ ! 667: Negotiate a line protocol to be used. ! 668: .IP -\ \ ! 669: Execute all requests from both systems. ! 670: .IP -\ \ ! 671: Log work requests and work completions. ! 672: .RE ! 673: .LP ! 674: .I Uucico ! 675: may be started in several ways; ! 676: .RS ! 677: .IP a) 5 ! 678: by a system daemon (such as \fIcron\fP(8)), ! 679: .IP b) ! 680: by one of the ! 681: .I ! 682: uucp, uux, uuxqt ! 683: .R ! 684: or ! 685: .I uupoll ! 686: programs, ! 687: .IP c) ! 688: directly by the user (this is usually for testing), ! 689: .IP d) ! 690: by a remote system. ! 691: (The \fIuucico\fP program should be specified as the ``shell'' ! 692: field in the \fB/etc/passwd\fP file for the \*(Uu logins.) ! 693: .RE ! 694: .LP ! 695: When started by method a, b or c, the program is considered to ! 696: be in ! 697: .I MASTER ! 698: mode. ! 699: In this mode, a connection will be made to a remote system. ! 700: If started by a remote system (method d), ! 701: the program is considered to be in ! 702: .I SLAVE ! 703: mode. ! 704: .LP ! 705: The ! 706: .I MASTER ! 707: mode will operate in one of two ways. ! 708: If no system name is specified ! 709: (\-s option not specified) ! 710: the program will scan the spool directory for ! 711: systems to call. ! 712: If a system name is specified, that system will be called, ! 713: and work will only be done for that system. ! 714: .LP ! 715: The ! 716: .I uucico ! 717: program is generally started by another program. ! 718: There are several options used for execution: ! 719: .RS ! 720: .IP \-g\fIgrade\fP 10 ! 721: Set the minimum grade of this \fIuucico\fP run to \fIgrade\fP. ! 722: Only files of this grade or better will be transferred. ! 723: .IP \-r1 ! 724: Start the program in ! 725: .I MASTER ! 726: mode. ! 727: This is used when ! 728: .I uucico ! 729: is started by a program or \fIcron\fP shell. ! 730: .IP \-s\fIsys\fR ! 731: Do work only for system ! 732: .I sys. ! 733: If ! 734: .B \-s ! 735: is specified, ! 736: a call to the specified system ! 737: will be made even if there is no work for system ! 738: .I sys ! 739: in the spool directory. ! 740: This is useful for polling systems which do not have ! 741: the hardware to initiate a connection. ! 742: .LP ! 743: The following options are used primarily for debugging: ! 744: .IP \-d\fIdir\fR ! 745: Use directory ! 746: .I dir ! 747: for the top level spool directory. ! 748: .IP \-x\fInum\fR ! 749: .I Num ! 750: is the level of debugging output desired. ! 751: .RE ! 752: .LP ! 753: The next part of this section will describe the major steps within ! 754: the ! 755: .I uucico ! 756: program. ! 757: .SH ! 758: Scan For Work ! 759: .LP ! 760: The names of the work related files in a spool subdirectory have format ! 761: .IP ! 762: type \fB.\fP system-name grade number ! 763: .LP ! 764: where: ! 765: .IP ! 766: .I Type ! 767: is an upper case letter, ! 768: ( ! 769: .B C ! 770: -\ work (copy command) file, ! 771: .B D ! 772: -\ data file, ! 773: .B X ! 774: -\ execute file); ! 775: .IP ! 776: .I System-name ! 777: is the remote system; ! 778: .IP ! 779: .I Grade ! 780: is a character in the range \fB[0-9][A-Z][a-z]\fP; ! 781: .IP ! 782: .I Number ! 783: is a four digit, padded sequence number. ! 784: .LP ! 785: The file ! 786: .IP "" 12 ! 787: C.res45n0031 ! 788: .LP ! 789: would be a ! 790: .I "work file" ! 791: for a file transfer between the local ! 792: machine and the ``res45'' machine. ! 793: .LP ! 794: The scan for work is done by looking through the ! 795: appropriate spool directory for ! 796: \fIwork files\fP ! 797: (files with prefix \fBC.\fP). ! 798: A list is made of all systems to be called. ! 799: .I Uucico ! 800: will then call each system and process all ! 801: .I "work files" . ! 802: .SH ! 803: Call Remote System ! 804: .LP ! 805: The call is made using information from the \fIcontrol\fP files ! 806: that reside in the \fB/usr/lib/uucp\fP directory. ! 807: At the start of the call process, a lock is ! 808: set to forbid multiple conversations ! 809: between the same two systems. ! 810: .LP ! 811: The system name is found in the ! 812: .I L.sys ! 813: control file. ! 814: The information contained for each system is; ! 815: .RS ! 816: .IP [1] ! 817: system name, ! 818: .IP [2] ! 819: times to call the system ! 820: (days-of-week and times-of-day), ! 821: .IP [3] ! 822: the \fIcaller\fP, that is, the type of device to be used for the call, ! 823: .IP [4] ! 824: the line speed or network number (as appropriate), ! 825: .IP [5] ! 826: telephone number or device name (as appropriate), ! 827: .IP [6] ! 828: login information (multiple fields). ! 829: .RE ! 830: .LP ! 831: The time field is checked against the present time to see ! 832: if the call should be made. ! 833: .LP ! 834: The ! 835: .I ! 836: phone number ! 837: .R ! 838: may contain abbreviations (e.g. mh, py, boston) which get translated into dial ! 839: sequences using the ! 840: .I L-dialcodes ! 841: file. ! 842: .LP ! 843: The ! 844: .I L-devices ! 845: file is scanned using fields [3] and [4] from the ! 846: .I L.sys ! 847: file to find an available device for the call. ! 848: The program will try all devices which satisfy ! 849: [3] and [4] until the call is made or no more ! 850: devices can be tried. ! 851: If a device is successfully opened, a lock file ! 852: is created so that another copy of ! 853: .I uucico ! 854: will not try to use it. ! 855: If the call is complete, the ! 856: .I ! 857: login information ! 858: .R ! 859: (field [6] of ! 860: \fIL.sys\fP) ! 861: is used to login. ! 862: .LP ! 863: The conversation between the two ! 864: .I uucico ! 865: programs begins with a handshake started by the called, ! 866: .I SLAVE , ! 867: system. ! 868: The ! 869: .I SLAVE ! 870: sends a message to let the ! 871: .I MASTER ! 872: know it is ready to receive the system ! 873: identification and conversation sequence number. ! 874: The response from the ! 875: .I MASTER ! 876: is ! 877: verified by the ! 878: .I SLAVE ! 879: and if acceptable, protocol selection begins. ! 880: The ! 881: .I SLAVE ! 882: can also reply with a ``call-back required'' ! 883: message in which case, the current conversation ! 884: is terminated. ! 885: .SH ! 886: Line Protocol Selection ! 887: .LP ! 888: The remote system sends a message ! 889: .IP "" 12 ! 890: P\fIproto-list\fR ! 891: .LP ! 892: where proto-list is a string of characters, each ! 893: representing a line protocol. ! 894: .LP ! 895: The calling program checks the proto-list ! 896: for a letter corresponding to an available line ! 897: protocol and returns a ! 898: .I use-protocol ! 899: message. ! 900: The ! 901: .I use-protocol ! 902: message is ! 903: .IP "" 12 ! 904: U\fIcode\fR ! 905: .LP ! 906: where ! 907: .I code ! 908: is either a one character ! 909: protocol letter or ! 910: .B N ! 911: which means there is no common protocol. ! 912: .LP ! 913: The following protocols are implemented in 4.3BSD \*(Uu: ! 914: .RS ! 915: .IP \fBg\fP ! 916: General. ! 917: Default for dialup or hardwired lines, supported by all versions of \*(Uu. ! 918: This protocol employs small (64 byte) data packets with ! 919: checksums and packet-by-packet retransmission. ! 920: This ensures reliable and efficient transfers over slow and noisy links ! 921: like 1200-baud dial-up lines. ! 922: These same characteristics make the \fBg\fP protocol bulky and slow over ! 923: error free links, and very expensive on public data-switched networks. ! 924: .IP \fBf\fP ! 925: Optimized for use on X.25 PAD public data-switched networks. ! 926: The protocol employs larger (256 byte) data packets, ! 927: passes no control characters except CR, ! 928: and uses only a 7-bit data path. ! 929: (Note that the files transferred may still contain full 8-bit data.) ! 930: It assumes that the link is ``mostly'' error-free, calculating a checksum ! 931: for the entire file only. ! 932: When an error is detected, the entire file is retransmitted. ! 933: .IP \fBt\fP ! 934: Optimized for use on TCP/IP networks and other completely error free links. ! 935: It employs large (1024 byte) packets, and uses the full 8-bit data path. ! 936: .RE ! 937: .LP ! 938: Note: AT&T System VR2 \*(UU supports the \fBx\fP (\fIX.25\fP) and \fBe\fP ! 939: (\fIError Free\fP) protocols, which provide functionality similar to the ! 940: 4.3BSD \fBf\fP and \fBt\fP protocols, respectively. ! 941: They are incompatible, however. ! 942: Thus when attempting to connect two systems via X.25 or an local area network, ! 943: it is not adequate for both systems to simply ``support X.25'' or ``support ! 944: error free transfers.'' ! 945: Both must support the same \*(Uu protocols. ! 946: .SH ! 947: Work Processing ! 948: .LP ! 949: The initial roles ( ! 950: .I MASTER ! 951: or ! 952: .I SLAVE ! 953: ) for the work processing are ! 954: the mode in which each program starts. ! 955: (The ! 956: .I MASTER ! 957: has been specified by the \fB\-r1\fP \fIuucico\fP option.) ! 958: The ! 959: .I MASTER ! 960: program does a work search similar to the ! 961: one used in the ``Scan For Work'' section. ! 962: .LP ! 963: There are five messages used during the ! 964: work processing, each specified by the first ! 965: character of the message. ! 966: They are; ! 967: .IP "" 12 ! 968: .RS ! 969: .IP S 3 ! 970: send a file, ! 971: .IP R ! 972: receive a file, ! 973: .IP C ! 974: copy complete, ! 975: .IP X ! 976: execute a ! 977: .I uucp ! 978: command, and ! 979: .IP H ! 980: hangup. ! 981: .RE ! 982: .LP ! 983: The ! 984: .I MASTER ! 985: will send ! 986: .I R , ! 987: .I S ! 988: or ! 989: .I X ! 990: messages until all work from the spool directory is ! 991: complete, at which point an ! 992: .I H ! 993: message will be sent. ! 994: The ! 995: .I SLAVE ! 996: will reply with ! 997: \fISY\fR, \fISN\fR, \fIRY\fR, \fIRN\fR, \fIHY\fR, \fIHN\fR, ! 998: \fIXY\fR, \fIXN\fR, ! 999: corresponding to ! 1000: .I yes ! 1001: or ! 1002: .I no ! 1003: for each request. ! 1004: .LP ! 1005: The send and receive replies are ! 1006: based on permission to access the ! 1007: requested file/directory using ! 1008: .I USERFILE ! 1009: and read/write permissions of the file/directory. ! 1010: After each file is copied into the spool directory ! 1011: of the receiving system, ! 1012: a copy-complete message is sent by the receiver of the file. ! 1013: The message ! 1014: .I CY ! 1015: will be sent if the ! 1016: file has successfully been moved from the ! 1017: temporary spool file to the actual destination. ! 1018: Otherwise, a ! 1019: .I CN ! 1020: message is sent. ! 1021: (In the case of ! 1022: .I CN , ! 1023: the transferred file will be in the \fBTM.\fP spool subdirectory.) ! 1024: The requests and results are logged on both systems. ! 1025: .LP ! 1026: The hangup response is determined by the ! 1027: .I SLAVE ! 1028: program by a work scan of its spool directory. ! 1029: If work for the \fIMASTER\fP\|'s system exists in the ! 1030: \fISLAVE\fP\|'s ! 1031: spool directory, an ! 1032: .I HN ! 1033: message is sent and the programs switch roles. ! 1034: If no work exists, an ! 1035: .I HY ! 1036: response is sent. ! 1037: .SH ! 1038: Conversation Termination ! 1039: .LP ! 1040: When a ! 1041: .I HY ! 1042: message is received by the ! 1043: .I MASTER ! 1044: it is echoed back to the ! 1045: .I SLAVE ! 1046: and the protocols are turned off. ! 1047: Each program sends a final ``OO'' message to the ! 1048: other. ! 1049: The original ! 1050: .I SLAVE ! 1051: program will clean up and terminate. ! 1052: The ! 1053: .I MASTER ! 1054: will proceed to call other systems ! 1055: and process work as long as possible ! 1056: or terminate if a ! 1057: .B \-s ! 1058: option was specified. ! 1059: .LP ! 1060: .\"=========================================================================== ! 1061: .NH 2 ! 1062: Uuxqt - Uucp Command Execution ! 1063: .LP ! 1064: The ! 1065: .I uuxqt ! 1066: program is used to execute ! 1067: .I ! 1068: execute files ! 1069: .R ! 1070: generated by ! 1071: .I uux. ! 1072: The ! 1073: .I uuxqt ! 1074: program may be started by either the ! 1075: .I uucico ! 1076: or ! 1077: .I uux ! 1078: programs. ! 1079: The program scans the \fBX.\fP spool directory for ! 1080: \fIexecute files\fP. ! 1081: Each one is checked to see if all the required files are available and ! 1082: if so, the command line or send line is executed. ! 1083: .LP ! 1084: The ! 1085: .I ! 1086: execute file ! 1087: .R ! 1088: is described in the ! 1089: .I uux ! 1090: section above. ! 1091: .SH ! 1092: Command Execution ! 1093: .LP ! 1094: The execution is accomplished by executing a ! 1095: .I ! 1096: sh \-c ! 1097: .R ! 1098: of the command line after appropriate ! 1099: standard input and standard output have been opened. ! 1100: If a standard output is specified, the program ! 1101: will create a send command or copy the output ! 1102: file as appropriate. ! 1103: .\"=========================================================================== ! 1104: .NH 2 ! 1105: Uuclean - Uucp Spool Directory Cleanup ! 1106: .LP ! 1107: This program is typically started by the ! 1108: \fIcron\fP(8) ! 1109: daemon, once a day. ! 1110: Its function is to remove files from the spool directories which ! 1111: are more than 3 days old. ! 1112: These are usually files for work which can not be completed. ! 1113: .LP ! 1114: .LP ! 1115: The options available are: ! 1116: .RS ! 1117: .IP \-d\fIdir\fR 10 ! 1118: The directory to be scanned is ! 1119: .I dir . ! 1120: .IP \-m ! 1121: Send mail to the owner of each file being removed. ! 1122: (Note that most files put into the spool directory ! 1123: will be owned by the owner of the ! 1124: uucp programs since the setuid bit will be set on these ! 1125: programs. ! 1126: The mail will therefore most often go to the owner ! 1127: of the uucp programs.) ! 1128: .IP \-n\fIhours\fR ! 1129: Change the aging time from 72 hours to ! 1130: .I hours ! 1131: hours. ! 1132: .IP \-p\fIpre\fR ! 1133: Examine files with prefix ! 1134: .I pre ! 1135: for deletion. ! 1136: (Up to 10 file prefixes may be specified.) ! 1137: .IP \-x\fInum\fR ! 1138: This is the level of debugging output desired. ! 1139: .RE ! 1140: .\"=========================================================================== ! 1141: .\" SECTION 4: CONTROL FILES ! 1142: .\"=========================================================================== ! 1143: .ne 5 ! 1144: .NH ! 1145: SYSTEM CONTROL FILES ! 1146: .PP ! 1147: Seven \fIControl Files\fP are referenced by the \*(Uu utilities. ! 1148: All live in the \*(Uu administrative directory, \fB/usr/lib/uucp\fP. ! 1149: These are ASCII files, and can be modified using standard text editors such ! 1150: as \fIvi\fP and \fIex\fP. ! 1151: Lines beginning with a `#' character are comments; ! 1152: lines ending with a `\e' are continued on the next input line. ! 1153: .RS ! 1154: .IP L-devices(5) 15 ! 1155: Declares all devices that are available to \fIuucico\fP for calling out. ! 1156: .IP L-dialcodes(5) ! 1157: Phone number prefixes. ! 1158: Used to map alphabetic prefixes on phone numbers from \fIL.sys\fP to ! 1159: real phone numbers. ! 1160: Also useful to keep a phone number database outside of \fIL.sys\fP. ! 1161: .IP L.sys(5) ! 1162: Systems. ! 1163: Declares all ``adjacent'' \*(Uu hosts, with directions on how to reach them. ! 1164: .IP L.aliases(5) ! 1165: Contains aliases used to map obsolete or truncated host names to the ! 1166: correct names. ! 1167: .IP L.cmds(5) ! 1168: Commands Permissions. ! 1169: Declares those commands for which remote \fIuux\fP execution is permitted. ! 1170: .IP SQFILE ! 1171: Sequence-number check file. (Optional) ! 1172: .IP USERFILE(5) ! 1173: Directory Tree Permissions. ! 1174: Specifies the set of directory trees that a particular user or host may ! 1175: reference. ! 1176: .RE ! 1177: .LP ! 1178: A general description of each file follows; see the \fIman\fP pages for ! 1179: complete information. ! 1180: Examples of the six standard files are included in the distribution in the ! 1181: \fB/usr/lib/uucp/UUAIDS\fP directory. ! 1182: .NH 2 ! 1183: L-devices \- \*(UU Devices File ! 1184: .LP ! 1185: This file declares all devices that are available to ! 1186: \fIuucico\fP ! 1187: for calling out. ! 1188: The special device files are assumed to be in the ! 1189: .I /dev ! 1190: directory. ! 1191: The format for each entry is ! 1192: .IP "" 12 ! 1193: caller line call-unit class dialer [chat....] ! 1194: .LP ! 1195: where; ! 1196: .RS ! 1197: .IP caller 12 ! 1198: is the caller mechanism, that is, the type of device to be used. ! 1199: This can be one of \fBACU\fP (for Automatic ! 1200: Call Units (modem)), \fBDIR\fP (direct hardwired), \fBPAD\fP ! 1201: (X.25/PAD), and others. ! 1202: .IP line ! 1203: is the device for the link. ! 1204: For example, \fBcul0\fP for a modem, \fBtty10\fP for a hardwired line. ! 1205: .IP call-unit ! 1206: is the automatic call unit associated with ! 1207: \fIdevice\fP. ! 1208: This is used on autodialers such as the Racal-Vadic MACS and the ! 1209: DEC DN-11 that use one device for data, and a second device for dialing. ! 1210: If unused, this field must contain a placeholder such as ``unused'' or ``0''. ! 1211: Some modems use this field to specify tone or pulse dialing. ! 1212: .IP class ! 1213: is the line speed, plus an optional alphabetic prefix. ! 1214: The prefix can be used to distinguish among different devices that ! 1215: have identical \fIcaller\fP and line speed. ! 1216: .IP dialer ! 1217: applies to \fBACU\fP devices only; ! 1218: this is the type or brand name of the modem. ! 1219: Supported modems include \fBDN11\fP (DEC DN-11), ! 1220: \fBhayes\fP (Hayes Smartmodem), ! 1221: \fBvadic\fP (Racal-Vadic 3451), ! 1222: \fBventel\fP (VenTel 212A), and others. ! 1223: .IP chat ! 1224: refers to an \fIexpect/send\fP script, similar to that provided in ! 1225: \fIL.sys\fP. ! 1226: The difference is that the script in ! 1227: .I L-devices ! 1228: is executed before the connection is established, while the script in ! 1229: .I L.sys ! 1230: is executed afterwards. ! 1231: .RE ! 1232: .LP ! 1233: The line ! 1234: .IP "" 12 ! 1235: ACU\ \ tty47\ \ unused\ \ 1200\ \ hayes ! 1236: .LP ! 1237: would be set up for a system which ! 1238: had device tty47 wired to a ! 1239: Hayes ``Smartmodem 1200'' ! 1240: for use at 1200 baud. ! 1241: .NH 2 ! 1242: L-dialcodes \- Phone Number Prefix File ! 1243: .LP ! 1244: This file contains entries with location abbreviations used ! 1245: in the ! 1246: .I L.sys ! 1247: file (e.g. py, mh, boston). ! 1248: The entry format is ! 1249: .IP "" 12 ! 1250: abb\ \ dial-seq ! 1251: .LP ! 1252: where; ! 1253: .RS ! 1254: .IP abb 12 ! 1255: is the abbreviation, ! 1256: .IP dial-seq ! 1257: is the dial sequence to call that location. ! 1258: .RE ! 1259: .LP ! 1260: The line ! 1261: .IP "" 12 ! 1262: py\ \ 165\- ! 1263: .LP ! 1264: would be set up so that entry py7777 would ! 1265: send 165\-7777 to the dial-unit. ! 1266: .NH 2 ! 1267: L.aliases \- Hostname Aliases File ! 1268: .LP ! 1269: This file defines mapping (aliasing) of remote host names. ! 1270: This is intended for compensating for systems that have ! 1271: changed names, or do not provide their entire machine name ! 1272: (like most USG systems). ! 1273: It is also useful when a machine's name is not obvious or commonly misspelled. ! 1274: .LP ! 1275: Each line is of the form ! 1276: .IP ! 1277: real-name\ \ alias-name ! 1278: .LP ! 1279: where ! 1280: .I real-name ! 1281: is the full, correct name for the host, and ! 1282: .I alias-name ! 1283: is the old or truncated name. ! 1284: .NH 2 ! 1285: L.sys \- \*(Uu Systems File ! 1286: .LP ! 1287: Each entry in this file represents one system ! 1288: which can be called by the local uucp programs. ! 1289: The format for each entry is ! 1290: .IP ! 1291: system times caller class device/phone-number [login] ! 1292: .LP ! 1293: where; ! 1294: .RS ! 1295: .IP "system" 12 ! 1296: is the hostname of the remote system. ! 1297: .IP times ! 1298: is a keyword-encoded string that indicates the days-of-the-week ! 1299: and times-of-day when the system may ! 1300: be called. ! 1301: For example \fBMoTuTh0800\-1730\fP would denote Monday, Tuesday, ! 1302: and Thursday, between 8 a.m. and 5:30p.m. ! 1303: .IP ! 1304: The day portion may be a list containing ! 1305: any of ! 1306: \fBSu\fP, \fBMo\fP, \fBTu\fP, \fBWe\fP, \fBTh\fP, \fBFr\fP, \fBSa\fP, ! 1307: or ! 1308: .B Wk ! 1309: for any week-day or ! 1310: .B Any ! 1311: for any day. ! 1312: .IP ! 1313: The time should be a range of times (as in \fB0800\-1230\fP). ! 1314: If no time portion is specified, any time ! 1315: of day is assumed to be acceptable for the call. ! 1316: .IP caller ! 1317: is one of the caller device-types listed in \fIL-devices\fP. ! 1318: .IP class ! 1319: is the line speed for the call (e.g., 300, 1200, 9600), ! 1320: plus an optional alphabetic prefix. ! 1321: Network devices use this field for the network port number. ! 1322: .IP phone ! 1323: is the the phone number to call (for \fBACU\fP devices) or the ! 1324: device filename. ! 1325: A phone number is made up of an optional ! 1326: alphabetic abbreviation and a numeric part. ! 1327: The abbreviation is one which appears in the ! 1328: .I L-dialcodes ! 1329: file (e.g. mh5900, boston995\-9980). ! 1330: .IP login ! 1331: is a script describing how to log in to the remote host. ! 1332: It is expressed as a series of ! 1333: fields and subfields in the format ! 1334: .IP "" 17 ! 1335: expect\ \ send\ ! 1336: [ ! 1337: expect\ \ send ! 1338: ] ! 1339: \ ... ! 1340: .IP "" 12 ! 1341: where; ! 1342: .I expect ! 1343: is the string expected to be read and ! 1344: .I send ! 1345: is the string to be sent when the ! 1346: .I expect ! 1347: string is received. ! 1348: The ! 1349: .I send ! 1350: string is normally terminated with carriage-return; ! 1351: an empty ! 1352: .I send ! 1353: string will send only a carriage-return. ! 1354: .IP ! 1355: The expect field may be made up of subfields ! 1356: of the form ! 1357: .IP "" 17 ! 1358: expect\fB[\fR\-send\-expect\fB]\fR... ! 1359: .IP "" 12 ! 1360: where the ! 1361: .I send ! 1362: is sent if the prior ! 1363: .I expect ! 1364: is not successfully read ! 1365: and the ! 1366: .I expect ! 1367: following the ! 1368: .I send ! 1369: is the next expected string. ! 1370: .RE ! 1371: .LP ! 1372: A typical entry in the L.sys file would be ! 1373: .IP "" 6 ! 1374: sys\ Any\ ACU\ 1200\ \ mh7654\ login:--login:\ uucp\ ssword:\ word ! 1375: .LP ! 1376: The expect algorithm looks at the last part of the ! 1377: string as illustrated in the password field. ! 1378: .NH 2 ! 1379: L.cmds \- Commands Permissions File ! 1380: .LP ! 1381: This file contains a list of commands, one per line, that are permitted ! 1382: for remote execution via \fIuux\fP. ! 1383: This list should be chosen with great care, since commands that take filenames ! 1384: as arguments will allow users to easily circumvent \*(Uu's security. ! 1385: For most sites, ! 1386: .I L.cmds ! 1387: should only include the lines: ! 1388: .DS ! 1389: rmail ! 1390: ruusend ! 1391: .DE ! 1392: .NH 2 ! 1393: SQFILE \- Sequence Check File (Optional) ! 1394: .LP ! 1395: This file contains an entry for each remote ! 1396: system with which this site agrees to perform conversation ! 1397: sequence checks. ! 1398: The initial entry is just the system name of ! 1399: the remote system. ! 1400: The first conversation will add two items to the line, ! 1401: the conversation count, and the date/time of the most ! 1402: resent conversation. ! 1403: These items will be updated with each conversation. ! 1404: If a sequence check fails, which could indicate that an unauthorized ! 1405: connection has been attempted, the entry will have to ! 1406: be adjusted. ! 1407: .LP ! 1408: This facility is technically no longer supported in 4.3BSD \*(Uu, ! 1409: since it was hardly ever used and consumed precious memory space on PDP-11 ! 1410: systems. ! 1411: The compile-time #define GNXSEQ can be set to enable sequence checking ! 1412: should it be needed. ! 1413: .NH 2 ! 1414: USERFILE \- Pathnames Permissions File ! 1415: .LP ! 1416: This file contains user accessibility information. ! 1417: It specifies four types of constraint; ! 1418: .RS ! 1419: .IP [1] ! 1420: which files can be accessed by a normal user of the local machine, ! 1421: .IP [2] ! 1422: which files can be accessed from a remote computer, ! 1423: .IP [3] ! 1424: which login name is used by a particular remote computer, ! 1425: .IP [4] ! 1426: whether a remote computer should be called back in order to confirm ! 1427: its identity. ! 1428: .RE ! 1429: .LP ! 1430: Each line in the file has the following format ! 1431: .IP "" 6 ! 1432: login,sys\ \ ! 1433: .B [ ! 1434: c ! 1435: .B ] ! 1436: \ \ path-name\ \ ! 1437: .B [ ! 1438: path-name ! 1439: .B ] ! 1440: \ ... ! 1441: .LP ! 1442: where; ! 1443: .RS ! 1444: .IP login 12 ! 1445: is the login name for a user or the remote computer, ! 1446: .IP sys ! 1447: is the system name for a remote computer, ! 1448: .IP c ! 1449: is the optional ! 1450: .I ! 1451: call-back required ! 1452: .R ! 1453: flag, ! 1454: .IP path-name ! 1455: is a path-name prefix that is acceptable for ! 1456: .I user. ! 1457: .LP ! 1458: .RE ! 1459: .LP ! 1460: The constraints are implemented as follows. ! 1461: .RS ! 1462: .IP [1] ! 1463: When the program is obeying a command stored on the local machine, ! 1464: .I MASTER ! 1465: mode, ! 1466: the path-names allowed are those given for the first line in the ! 1467: .I USERFILE ! 1468: that has a login name that matches the login name of the user ! 1469: who entered the command. ! 1470: If no such line is found, the first line with a ! 1471: .I null ! 1472: login name is used. ! 1473: .IP [2] ! 1474: When the program is responding to a command from a remote machine, ! 1475: .I SLAVE ! 1476: mode, the path-names allowed are those given for the first line ! 1477: in the file that has the system name that matches the system name ! 1478: of the remote machine. ! 1479: If no such line is found, the first one with a ! 1480: .I null ! 1481: system name is used. ! 1482: .IP [3] ! 1483: When a remote computer logs in, the login name that ! 1484: it uses must appear in the ! 1485: .I USERFILE . ! 1486: There may be several lines with the same login name but one of them must ! 1487: either have the name of the remote system or must contain a ! 1488: .I null ! 1489: system name. ! 1490: .B Note: ! 1491: This constraint, although stated in the original Nowitz \*(Uu document, ! 1492: was not implemented in Version 7 \*(Uu. ! 1493: For all practical purposes, ! 1494: a remote computer's login was not validated by \*(Uu. ! 1495: This is still the case in 4.3BSD. ! 1496: Remote login checking \fIis\fP implemented in AT&T's System VR2.2 release, ! 1497: and in the \*(Uu provided with Digital Equipment Corporation's ULTRIX. ! 1498: HoneyDanBer analogously requires all remote logins to be listed in ! 1499: its \fIPermissions\fP file. ! 1500: .IP [4] ! 1501: If the line matched in ([3]) contains a ``c'', ! 1502: the remote machine is called back before any transactions take place. ! 1503: .RE ! 1504: .LP ! 1505: The line ! 1506: .IP "" 12 ! 1507: u,m /usr/xyz ! 1508: .LP ! 1509: allows machine ! 1510: .I m ! 1511: to login with name ! 1512: .I u ! 1513: and request the transfer of files whose names start with ! 1514: ``/usr/xyz''. ! 1515: .LP ! 1516: The line ! 1517: .IP "" 12 ! 1518: dan, /usr/dan ! 1519: .LP ! 1520: allows the ordinary user ! 1521: .I dan ! 1522: to issue commands for files whose name starts with ! 1523: ``/usr/dan''. ! 1524: .LP ! 1525: The lines ! 1526: .IP "" 12 ! 1527: u,m /usr/xyz /usr/spool ! 1528: .br ! 1529: u, /usr/spool ! 1530: .LP ! 1531: allows any remote machine to login with name ! 1532: .I u , ! 1533: but if its system name is not ! 1534: .I m , ! 1535: it can only ask to transfer files whose names start with ! 1536: ``/usr/spool''. ! 1537: .LP ! 1538: The lines ! 1539: .IP "" 12 ! 1540: root, / ! 1541: .br ! 1542: , /usr ! 1543: .LP ! 1544: allows any user to transfer files beginning with ``/usr'' ! 1545: but the user with login ! 1546: .I root ! 1547: can transfer any file. ! 1548: .PP ! 1549: .RE ! 1550: .\"=========================================================================== ! 1551: .\" SECTION 5: SPOOL FILES ! 1552: .\"=========================================================================== ! 1553: .ne 5 ! 1554: .NH ! 1555: SPOOL FILES ! 1556: .PP ! 1557: Spool Files contain \*(Uu transfer requests and data. ! 1558: Most have been described in detail earlier in this document. ! 1559: .LP ! 1560: All spool files live in the ! 1561: .B /usr/spool/uucp ! 1562: directory tree. ! 1563: To keep the spool directory from becoming hopelessly cluttered, ! 1564: each type of spool file is kept in its own subdirectory. ! 1565: The name of the directory is the same as the common prefix of the ! 1566: filename. ! 1567: For example, \fIwork files\fP (files beginning with \fBC.\fP) are kept ! 1568: in the \fBC.\fP directory; \fIexecute files\fP (which begin with \fBX.\fP) ! 1569: are kept in the \fBX.\fP directory, and so on. ! 1570: .LP ! 1571: A total of ten spool subdirectories are used, one of which is optional: ! 1572: .RS ! 1573: .IP C. 15 ! 1574: \fIWork\fP files. ! 1575: .IP CORRUPT ! 1576: Corrupted \fIwork\fP and \fIexecute\fP files. ! 1577: \fIUucico\fP and \fIuuxqt\fP will deposit \fBC.\fP and \fBX.\fP files here ! 1578: when they are unable to parse them. ! 1579: A notice will also be placed in the \*(Uu log. ! 1580: .IP D. ! 1581: \fIData files\fP received from remote hosts. ! 1582: .IP D.\fIhostname\fP ! 1583: \fIData files\fP to be sent to remote hosts. ! 1584: .IP D.\fIhostname\fPX ! 1585: \fIExecution files\fP to be sent to remote hosts. ! 1586: .IP LCK ! 1587: Per-device and per-site lock (\fBLCK.\fP) files. (Optional) ! 1588: .IP STST ! 1589: Per-site system status files. ! 1590: .IP TM. ! 1591: Temporary files used in data transfer. ! 1592: When the transfer is complete, the file is typically ! 1593: \fImv\fP'ed to the \fBD.\fP or \fBX.\fP directory. ! 1594: .IP X. ! 1595: \fIExecution files\fP received from remote sites. ! 1596: .IP XTMP ! 1597: Temporary files and home directory for \fIuuxqt\fP. ! 1598: .RE ! 1599: .LP ! 1600: The following sections describe only those spool files that were not ! 1601: discussed earlier. ! 1602: .NH 2 ! 1603: LCK \- lock files ! 1604: .LP ! 1605: Lock files are created for each device in use (except for TCP/IP sockets) ! 1606: and each system conversing. ! 1607: This prevents duplicate conversations and multiple attempts to use the ! 1608: same devices. ! 1609: The form of the lock file name is ! 1610: .IP "" 12 ! 1611: \fBLCK..\fRstr ! 1612: .LP ! 1613: where ! 1614: .I str ! 1615: is either a device or system name. ! 1616: The files may be left in the spool directory if ! 1617: .I uucico ! 1618: aborts. ! 1619: They will be ignored (reused) after 90 minutes. ! 1620: When runs abort and calls are desired before the time limit expires, ! 1621: the lock files should be removed. ! 1622: If the \fBLCK.\fP subdirectory is used, it's access mode can be set to 777, ! 1623: thus allowing normal users to remove dead lock files when necessary. ! 1624: .NH 2 ! 1625: STST \- system status files ! 1626: .LP ! 1627: These files are created in the \fBSTST\fP subdirectory by ! 1628: \fIuucico\fP. ! 1629: They contain information of failures such as login, dialup, or ! 1630: sequence check, and will contain a ! 1631: \fITALKING\fP, \fIRECEIVING\fP, or \fPSENDING\fP ! 1632: status when two machines are conversing. ! 1633: The file name is ! 1634: \fBSTST/\fP\fIsystem\fP, ! 1635: where \fIsystem\fP is the host name of the remote machine. ! 1636: .LP ! 1637: For ordinary failures (dialup, login), the file indicates the time ! 1638: of the last failure; ! 1639: this allows \fIuucico\fP to avoid retrying the failed call too soon. ! 1640: For sequence check failures, the file must be removed before ! 1641: any future attempts to converse with that remote system. ! 1642: .LP ! 1643: If the file is left due to an aborted run, it may contain a ! 1644: .I TALKING ! 1645: status. ! 1646: In this case, the file must be removed before a conversation ! 1647: is attempted. ! 1648: The easiest way to do this is to use the \fIuupoll\fP command to ! 1649: force \fIuucico\fP to start up. ! 1650: .NH 2 ! 1651: TM \- temporary data files ! 1652: .LP ! 1653: These files are created in the ! 1654: .B /usr/spool/uucp/TM. ! 1655: directory while files are being copied ! 1656: from a remote machine. ! 1657: Their names have the form ! 1658: .IP "" 12 ! 1659: \fBTM\fR.pid.ddd ! 1660: .LP ! 1661: where ! 1662: .I pid ! 1663: is a process-id and ! 1664: .I ddd ! 1665: is a sequential three digit number starting at zero ! 1666: for each invocation of ! 1667: .I uucico ! 1668: and incremented for each file received. ! 1669: After the entire remote file is received, the ! 1670: .B TM ! 1671: file is moved to the requested destination, ! 1672: often the \fBX.\fP or \fBD.\fP directory. ! 1673: If processing is abnormally terminated or the ! 1674: move fails, the file will remain in the ! 1675: \fBTM.\fP directory. ! 1676: .LP ! 1677: The stranded files should be periodically removed; ! 1678: the ! 1679: .I uuclean ! 1680: program is useful in this regard. ! 1681: The command ! 1682: .IP "" 12 ! 1683: uuclean\ \ -d/usr/spool/uucp/TM.\ \ \-pTM. ! 1684: .LP ! 1685: will remove all ! 1686: .B TM ! 1687: files older than three days. ! 1688: .\"=========================================================================== ! 1689: .\" SECTION 6: LOG FILES ! 1690: .\"=========================================================================== ! 1691: .ne 5 ! 1692: .NH ! 1693: LOG FILES ! 1694: .LP ! 1695: The following files provide a history of \*(Uu activities. ! 1696: All live in the spool directory, \fB/usr/spool/uucp\fP. ! 1697: They grow forever, and must be periodically trimmed or deleted; ! 1698: this is usually done weekly (or daily) via \fIcron\fP. ! 1699: .RS ! 1700: .IP AUDIT 12 ! 1701: This is a directory of audit trail files, one file per site. ! 1702: .I Uucico ! 1703: uses an audit file for debugging output ! 1704: whenever it is run with debug enabled (via the \fB-x\fP option or a ! 1705: \fBSIGFPE\fP signal), but the standard message output file \fBstderr\fP is ! 1706: not available. ! 1707: .IP ERRLOG ! 1708: This is an oft-forgotten log of \*(Uu ``Assert'' errors. ! 1709: An Assert error is a catastrophic and unrecoverable failure of the \*(Uu ! 1710: system. ! 1711: These include spool directories or control files that cannot be opened, ! 1712: an unexpected error return from a system call, or an ``impossible case'' ! 1713: in a utility's control flow. ! 1714: .IP ! 1715: Utilities that abort with an Assert error return a status code of -1. ! 1716: If a user reports \fIuucp\fP or \fIuux\fP dying with a message like ! 1717: ``uux failed, status -1,'' then the ERRLOG file should be checked. ! 1718: .IP LOGFILE ! 1719: This is the primary \*(Uu log. All \*(Uu activity is recorded here, ! 1720: including queue requests from \fIuucp\fP and \fIuux\fP, attempted ! 1721: connections, file transfers, and communications failures. ! 1722: .IP SYSLOG ! 1723: This is a log of file transfer statistics: number of bytes, time required, ! 1724: and number of packet retries. ! 1725: The effective data rate can be calculated simply by dividing the number of ! 1726: bytes by the time; ! 1727: low data rates or a large number of retries implies that the communication ! 1728: link may marginal. ! 1729: .RE ! 1730: .LP ! 1731: Optionally, one \fILOGFILE\fP per site may be maintained in the \fBLOG\fP ! 1732: subdirectory. ! 1733: This option can be selected at \*(Uu compile time via the LOGBYSITE #define ! 1734: in \fBuucp.h\fP. ! 1735: .\"=========================================================================== ! 1736: .\" SECTION 7: ADMINSTRATION AND SYSTEM SECURITY ! 1737: .\"=========================================================================== ! 1738: .ne 5 ! 1739: .NH ! 1740: ADMINISTRATION AND SYSTEM SECURITY ! 1741: .NH 2 ! 1742: .UX ! 1743: System Files ! 1744: .SH ! 1745: /etc/passwd ! 1746: .LP ! 1747: \*(Uu requires a login in \fB/etc/passwd\fP; ! 1748: at its simplest the entry would be ! 1749: .DS ! 1750: uucp::66:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico ! 1751: .DE ! 1752: .LP ! 1753: This user should own all the \*(Uu files and utilities. ! 1754: Remote sites wishing to call in for \*(Uu transfers would login to ! 1755: \fBuucp\fP (with the correct password, if any), and get ! 1756: .I uucico ! 1757: as their ``shell.'' ! 1758: Since \fIuucico\fP would be called without any options, it would run in ! 1759: .I SLAVE ! 1760: mode, thus responding correctly to the remote system, which ! 1761: would be in ! 1762: .I MASTER ! 1763: mode. ! 1764: .LP ! 1765: The directory ! 1766: .B /usr/spool/uucppublic ! 1767: should be created with 777 access modes, owned by \fBuucp\fP. ! 1768: In addition to serving as the home directory for \*(Uu remote logins, ! 1769: .B uucppublic ! 1770: provides a ``public-access'' directory where any user can read, write, ! 1771: or transfer files. ! 1772: .LP ! 1773: There are a number of security problems with using a single login, not ! 1774: the least of which is that superuser permission would be necessary to ! 1775: edit the \fIcontrol\fP files. ! 1776: A better arrangement would be: ! 1777: .DS ! 1778: uucp::66:1:UUCP Administrator:/usr/lib/uucp: ! 1779: nuucp::67:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico ! 1780: .DE ! 1781: This provides one login for the \*(Uu administrator (which must be kept ! 1782: secure!) and a second for remote machines to use for login. ! 1783: A still more elaborate setup would use a separate login for each remote ! 1784: site, and possibly provide the administrator with a choice of shells: ! 1785: .DS ! 1786: uucp::66:1:UUCP Administrator:/usr/lib/uucp: ! 1787: UUCP::66:1:UUCP Administrator:/usr/lib/uucp:/bin/csh ! 1788: Uhosta::6001:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico ! 1789: Uhostb::6002:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico ! 1790: Uhostc::6003:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/lib/uucp/uucico ! 1791: .DE ! 1792: .LP ! 1793: It is assumed that the login name ! 1794: used by a remote computer to dial in ! 1795: is not the same as the login name of a normal user ! 1796: of the machine. ! 1797: However, several remote computers may employ the same ! 1798: login name. ! 1799: .LP ! 1800: Note that ! 1801: .B uucppublic ! 1802: is ! 1803: .I not ! 1804: used as the home directory for ! 1805: .B uucp ! 1806: when it logs into a regular shell. ! 1807: This would be an extreme security hazard, since anyone could slip a ! 1808: ``Trojan horse'' into a ! 1809: .B .profile ! 1810: or ! 1811: .B .cshrc ! 1812: file, which would be automatically executed when the \*(Uu administrator ! 1813: logged in. ! 1814: .SH ! 1815: /etc/rc ! 1816: .LP ! 1817: The system startup file, \fB/etc/rc\fP, should clean up any stray lock ! 1818: files with the line ! 1819: .IP ! 1820: rm -f /usr/spool/uucp/LCK.* ! 1821: .LP ! 1822: or, if the LCK subdirectory is being used, ! 1823: .IP ! 1824: rm -f /usr/spool/uucp/LCK/LCK.* ! 1825: .SH ! 1826: /etc/services ! 1827: .LP ! 1828: If \*(Uu is to be used over TCP/IP links, then an entry for \*(Uu's port ! 1829: number should be added to \fB/etc/services\fP: ! 1830: .IP ! 1831: uucp\ \ 540/tcp\ \ uucpd\ \ # UUCP TCP/IP ! 1832: .\"=========================================================================== ! 1833: .NH 2 ! 1834: Shell Scripts For Periodic Cleanup ! 1835: .LP ! 1836: The \*(Uu system has a fairly large number of activities that must ! 1837: occur periodically. ! 1838: These include starting \fIuucico\fP to process queued requests, ! 1839: running \fIuuclean\fP to remove old spool files, and ! 1840: shuffling the boundlessly-growing log files. ! 1841: Some sites will also want to poll other sites periodically. ! 1842: .LP ! 1843: While it's possible to put all the necessary commands into \fIcron\fP's ! 1844: control file \fB/usr/lib/crontab\fP, this would be extremely awkward. ! 1845: The usual technique is to use three separate shells scripts, one each ! 1846: for hourly, daily, and weekly operations. ! 1847: Examples are provided in the ! 1848: .B UUAIDS ! 1849: directory; the following sections provide some specific recommendations. ! 1850: .SH ! 1851: Hourly ! 1852: .LP ! 1853: Activities that should occur hourly include: ! 1854: .RS ! 1855: .IP - 2 ! 1856: Polling of selected sites. ! 1857: Sites that have no dial-out capability will need to be periodically polled. ! 1858: The \fIuupoll\fP command works well for this. ! 1859: .IP - ! 1860: Start \fIuucico\fP to complete all unfinished work. ! 1861: This can be as simple as: ! 1862: .IP "" 7 ! 1863: uucico -r1 & ! 1864: .RE ! 1865: .SH ! 1866: Daily ! 1867: .LP ! 1868: The daily script should be started by \fIcron\fP in the wee hours, around ! 1869: 4 a.m. ! 1870: Activities that should occur daily include: ! 1871: .RS ! 1872: .IP - 2 ! 1873: Call ! 1874: .I uuclean ! 1875: to remove old spool files. ! 1876: The preferred technique is something like the following: ! 1877: .DS ! 1878: cd /usr/lib/uucp ! 1879: deadtime=`expr 24 \* 7` ! 1880: uuclean -d/usr/spool/uucp/AUDIT -n72 ! 1881: uuclean -d/usr/spool/uucp/LCK -pLCK. -pLTMP. -n24 ! 1882: uuclean -d/usr/spool/uucp/STST -n72 ! 1883: uuclean -d/usr/spool/uucp/TM. -pTM. -n72 ! 1884: uuclean -d/usr/spool/uucp/XTMP -n72 ! 1885: uuclean -d/usr/spool/uucp/X. -pX. -n$deadtime ! 1886: uuclean -d/usr/spool/uucp/C. -pC. -n$deadtime ! 1887: uuclean -d/usr/spool/uucp/D. -pD. -n$deadtime ! 1888: uuclean -d/usr/spool/uucp/D.`uuname -l` -pD. -n$deadtime ! 1889: uuclean -d/usr/spool/uucp/D.`uuname -l`X -pD. -n$deadtime ! 1890: .DE ! 1891: .IP ! 1892: In this example, ! 1893: Audit files, Lock files, System Status files, temp files, and \fIuuxqt\fP ! 1894: output files are cleaned up every 72 hours (3 days). ! 1895: (\fBLTMP.\fP files are temporary files created by the lock mechanism; ! 1896: they are rarely around for more than a few seconds. ! 1897: Note, the above assumes that the ! 1898: .B LCK ! 1899: subdirectory is being used.) ! 1900: All normal data files are cleaned up every 24 * 7 hours, or every 7 days. ! 1901: .IP - ! 1902: Shuffle the log files. ! 1903: At the very least, LOGFILE should be moved to LOGFILE.old, and SYSLOG moved ! 1904: to SYSLOG.old. ! 1905: Busy sites may want to use \fIcompress\fP(1) to squeeze down the old files. ! 1906: .IP - ! 1907: Use \fIfind\fP(1) to clean up the ! 1908: .B /usr/spool/uucppublic ! 1909: directory. ! 1910: If left unattended, garbage will gradually accumulate there until it fills ! 1911: the file system. ! 1912: .RE ! 1913: .SH ! 1914: Weekly ! 1915: .LP ! 1916: Small sites with very little traffic may chose to shuffle the log files once ! 1917: per week, instead of once per day. ! 1918: The weekly script should, like the daily script, be run early in the morning. ! 1919: .\"=========================================================================== ! 1920: .NH 2 ! 1921: Connecting new systems ! 1922: .LP ! 1923: When first connecting a new machine to a \*(Uu network, ! 1924: it is useful to try and establish a connection with ! 1925: \fItip\fR or \fIcu\fR first. ! 1926: The \*(Uu administrator will quickly become aware of any special facilities ! 1927: that are going to be required, ! 1928: for example: ! 1929: What lines and modems are to be used? ! 1930: Is the connection through different hardware and carriers? ! 1931: Does the remote system care about parity? ! 1932: What speed lines are being used and do they cycle through several speeds? ! 1933: Is there a line switch front end that will require special login dialogue in ! 1934: \fBL.sys\fP? ! 1935: .LP ! 1936: Once a successful login is achieved ``by hand,'' the administrator should ! 1937: have enough information to allow the correct setup of the \fIcontrol\fR files ! 1938: in ! 1939: .B/usr/lib/uucp. ! 1940: .LP ! 1941: The \*(Uu administrator should then ! 1942: negotiate with the remote site's \*(Uu administrator ! 1943: as to who (if anyone) will do polling and when. ! 1944: Both administrators must set up the relevant accounts and passwords. ! 1945: The local administrator should ! 1946: decide on what permissions and security precautions are to be observed. ! 1947: Testing time and facilities will need to be arranged ! 1948: to complete initial connection testing between the systems. ! 1949: .\"============================================================================ ! 1950: .NH 2 ! 1951: Miscellaneous Security Issues ! 1952: .LP ! 1953: The \*(Uu system, left unrestricted, ! 1954: will let any outside user execute any commands ! 1955: and copy any files that are accessible ! 1956: to the ! 1957: .B uucp ! 1958: login user. ! 1959: It is up to the individual sites to be aware of this and ! 1960: apply the protections that they feel are necessary. ! 1961: .PP ! 1962: There are several security features available aside from the ! 1963: normal file mode protections. ! 1964: These must be set up by the installer of the ! 1965: \*(Uu ! 1966: system. ! 1967: .IP - 3 ! 1968: The login for uucp does not get a standard shell. ! 1969: Instead, ! 1970: .I uucico ! 1971: is started. ! 1972: Therefore, the only work that can be done is through ! 1973: .I uucico . ! 1974: .IP - ! 1975: A path check is done on file names that are to be sent ! 1976: or received. ! 1977: .I USERFILE ! 1978: supplies the information for these checks. ! 1979: .I USERFILE ! 1980: can also be set up to require call-back ! 1981: for certain login-ids. ! 1982: (See the description of ! 1983: .I USERFILE ! 1984: above.) ! 1985: .IP - ! 1986: A conversation sequence count can be set up so ! 1987: that the called system ! 1988: can be more confident that the caller ! 1989: is who he says he is. ! 1990: .IP - ! 1991: .I Uuxqt ! 1992: is restricted via the ! 1993: .I L.cmds ! 1994: file to a small list of commands that it ! 1995: will execute. ! 1996: A ``PATH'' shell statement is prepended to the command ! 1997: line as specified in the ! 1998: .I L.cmds ! 1999: file. ! 2000: The administrator may modify the list or remove the ! 2001: restrictions as desired. ! 2002: .IP - ! 2003: All the \*( utilities except \fIuudecode\fP, \fIuuencode\fP, ! 2004: and \fIuusend\fP should be owned by the ! 2005: .B uucp ! 2006: login with the ``setuid'' bit set and only execute ! 2007: permissions (e.g. mode 04111). ! 2008: This will prevent outsiders from modifying the programs ! 2009: to get at a standard shell with a ! 2010: .B uucp ! 2011: login. ! 2012: Optionally, the utilities may belong to group \fBdaemon\fP and be given ! 2013: ``setgid'' permissions (mode 06111). ! 2014: \fIUuxqt\fP should only permit other \*(Uu programs to execute it; ! 2015: its mode should be 04100 or 06110. ! 2016: .IP - ! 2017: The \fIcontrol\fP files \fIL.sys\fP, \fIUSERFILE\fP, and \fISQFILE\fP ! 2018: contain highly sensitive information. ! 2019: They should be owned by the ! 2020: .B uucp ! 2021: login, with read and write permission granted only to the owner (mode 0600). ! 2022: .\"=========================================================================== ! 2023: .\" SECTION 7: UUCP SOURCE INSTALLATION ! 2024: .\"=========================================================================== ! 2025: .ne 5 ! 2026: .NH ! 2027: INSTALLING THE \*(UU SYSTEM ! 2028: .PP ! 2029: The source for the \*(UU system resides in the ! 2030: .B /usr/src/usr.bin/uucp ! 2031: directory. ! 2032: The README file includes complete instructions on how to rebuild the ! 2033: \*(Uu system from source. ! 2034: .LP ! 2035: For most environments, only two files will need to be modified: ! 2036: .B uucp.h ! 2037: includes a large number of tunable system-dependent parameters, ! 2038: including operating system type, devices to be supported, ! 2039: and a variety of optional features. ! 2040: The ! 2041: .B Makefile ! 2042: may also have to be modified, ! 2043: particularly if you chose to keep certain files in different ! 2044: directories from usual. ! 2045: .\"=========================================================================== ! 2046: .\" SECTION 8: ACKNOWLEDGMENTS ! 2047: .\"=========================================================================== ! 2048: .ne 5 ! 2049: .NH ! 2050: ACKNOWLEDGEMENTS ! 2051: .PP ! 2052: 4.3BSD UUCP was a group development effort, involving the contributed work ! 2053: of over one hundred members of the USENET community. ! 2054: We're extremely grateful to them all. ! 2055: .LP ! 2056: Special thanks go to the following individuals, whose contributions were ! 2057: especially valuable: ! 2058: .RS ! 2059: .IP - 2 ! 2060: Rick Adams (Center for Seismic Studies) coordinated the 4.3BSD UUCP release, ! 2061: incorporating (and often correcting) hundreds of bug fixes that ! 2062: were posted on the USENET and mailed to him directly. ! 2063: Rick also managed to find time to add many enhancements ! 2064: and corrections of his own. ! 2065: .IP - ! 2066: Tom Truscott (Research Triangle Institute) and Bob Gray (then with ! 2067: PAR Tech Corp, now at Univ of Colorado) ! 2068: coordinated the 4.2BSD UUCP release, which was also a group effort. ! 2069: Tom has continued to provide enhancements and fixes in 4.3BSD. ! 2070: .IP - ! 2071: Guy Harris (then with Computer Consoles, Inc., now with Sun Microsystems) ! 2072: contributed many general bug fixes; ! 2073: in particular, he was the first to isolate the infamous 4.2BSD ``TIMEOUT'' bug. ! 2074: .IP - ! 2075: Lou Salkind (New York University) wrote the \fIuuq\fP utility. ! 2076: .IP - ! 2077: James Bloom (U.C. Berkeley) isolated a major ! 2078: day-one bug in the \fBg\fP-protocol driver ! 2079: that had eluded many people's attempts to squash it. ! 2080: .IP - ! 2081: Piet Beertema (Centrum voor Wiskunde en Informatica, Amsterdam) wrote the ! 2082: \fBf\fP-protocol to support ``mostly error-free links''; ! 2083: Robert Elz (University of Melbourne) modified the protocol ! 2084: specifically for X.25/PAD. ! 2085: .IP - ! 2086: Peter Honeyman (Princeton) assisted Rick by providing information on the ! 2087: facilities provided in HoneyDanBer UUCP; ! 2088: Rick then added many HDB-compatibility features and HDB-like ! 2089: extensions to 4.3BSD UUCP. ! 2090: .IP - ! 2091: Ross Green (U.C. Berkeley) produced the first revision of this chapter, ! 2092: updating the aging Nowitz document to more closely reflect reality. ! 2093: .RE ! 2094: .LP ! 2095: Thanks again to everyone who contributed. ! 2096: Berkeley UUCP continues to be a product of its own users, ! 2097: and would not exist as it does today without them.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.