Annotation of 43BSDReno/usr.bin/uucp/USERFILE.5, revision 1.1

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: .\"    @(#)USERFILE.5  6.2 (Berkeley) 6/23/90
        !             6: .\"
        !             7: .TH USERFILE 5 "June 23, 1990"
        !             8: .UC 6
        !             9: .SH NAME
        !            10: USERFILE \- \s-1UUCP\s0 pathname permissions file
        !            11: .SH DESCRIPTION
        !            12: The
        !            13: .I USERFILE
        !            14: file specifies the file system directory trees that are accessible to
        !            15: local users and to remote systems via \s-1UUCP\s0.
        !            16: .PP
        !            17: Each line in
        !            18: .I USERFILE
        !            19: is of the form:
        !            20: .PP
        !            21: [\fIloginname\fP]\fB,\fP[\fIsystem\fP] [ \fBc\fP ] \fIpathname\fP \c
        !            22: [\fIpathname\fP] [\fIpathname\fP]
        !            23: .PP
        !            24: The first two items are separated by a comma; any number of spaces or
        !            25: tabs may separate the remaining items.
        !            26: Lines beginning with a `#' character are comments.
        !            27: A trailing `\e' indicates that the next line
        !            28: is a continuation of the current line. 
        !            29: .PP
        !            30: .I Loginname
        !            31: is a login (from
        !            32: .IR /etc/passwd )
        !            33: on the local machine.
        !            34: .PP
        !            35: .I System
        !            36: is the name of a remote machine, the same name used in
        !            37: .IR L.sys (5).
        !            38: .PP
        !            39: .I c
        !            40: denotes the optional
        !            41: .I callback
        !            42: field.
        !            43: If a \fBc\fP appears here, a remote machine that calls in will be told
        !            44: that callback is requested, and the conversation will be terminated.
        !            45: The local system will then immediately call the remote host back.
        !            46: .PP
        !            47: .I Pathname
        !            48: is a pathname prefix that is permissible for this
        !            49: .I login
        !            50: and/or
        !            51: .IR system .
        !            52: .PP
        !            53: When
        !            54: .IR uucico (8C)
        !            55: runs in master role or
        !            56: .IR uucp (1C)
        !            57: or
        !            58: .IR uux (1C)
        !            59: are run by local users, the permitted pathnames are those on the
        !            60: first line with a
        !            61: .I loginname
        !            62: that matches the name of the user who executed the command.
        !            63: If no such line exists, then the first line with a null (missing)
        !            64: .I loginname
        !            65: field is used.
        !            66: (Beware:
        !            67: .I uucico
        !            68: is often run by the superuser or the \s-1UUCP\s0 administrator through
        !            69: .IR cron (8).)
        !            70: .PP
        !            71: When
        !            72: .I uucico
        !            73: runs in slave role, the permitted pathnames are those on the
        !            74: first line with a
        !            75: .I system
        !            76: field that matches the hostname of the remote machine.
        !            77: If no such line exists, then the first line with a null (missing)
        !            78: .I system
        !            79: field is used.
        !            80: .PP
        !            81: .IR Uuxqt (8)
        !            82: works differently; it knows neither a login name nor a hostname.
        !            83: It accepts the pathnames on the first line that has a null
        !            84: .I system 
        !            85: field.
        !            86: (This is the same line that is used by
        !            87: .I uucico
        !            88: when it cannot match the remote machine's hostname.)
        !            89: .PP
        !            90: A line with both
        !            91: .I loginname
        !            92: and
        !            93: .I system
        !            94: null, for example
        !            95: .IP
        !            96: .B ,  /var/spool/uucppublic
        !            97: .PP    
        !            98: can be used to conveniently specify the paths for both "no match" cases
        !            99: if lines earlier in
        !           100: .I USERFILE
        !           101: did not define them.
        !           102: (This differs from older Berkeley and all USG versions, where each case
        !           103: must be individually specified.
        !           104: If neither case is defined earlier,
        !           105: a "null" line only defines the "unknown login" case.)
        !           106: .PP
        !           107: To correctly process
        !           108: .I loginname
        !           109: on systems that assign several logins per UID,
        !           110: the following strategy is used to determine the current
        !           111: .IR loginname :
        !           112: .TP
        !           113: 1)
        !           114: If the process is attached to a terminal, a login entry exists in
        !           115: .IR /var/run/utmp ,
        !           116: and the UID for the
        !           117: .I utmp
        !           118: name matches the current real UID, then
        !           119: .IR loginname
        !           120: is set to the
        !           121: .I utmp
        !           122: name.
        !           123: .TP
        !           124: 2)
        !           125: If the
        !           126: .B USER
        !           127: environment variable is defined and the UID for this name matches
        !           128: the current real UID, then
        !           129: .IR loginname
        !           130: is set to the name in
        !           131: .BR USER .
        !           132: .TP
        !           133: 3)
        !           134: If both of the above fail, call
        !           135: .IR getpwuid (3)
        !           136: to fetch the first name in
        !           137: .I /etc/passwd
        !           138: that matches the real UID.
        !           139: .TP
        !           140: 4)
        !           141: If all of the above fail, the utility aborts.
        !           142: .SH FILES
        !           143: .ta \w'/usr/lib/uucp/UUAIDS/USERFILE   'u
        !           144: .nf
        !           145: /usr/lib/uucp/USERFILE
        !           146: /usr/lib/uucp/UUAIDS/USERFILE  USERFILE example
        !           147: .fi
        !           148: .SH SEE ALSO
        !           149: uucp(1C), uux(1C), L.cmds(5), L.sys(5), uucico(8C), uuxqt(8C)
        !           150: .SH NOTES
        !           151: The \s-1UUCP\s0 utilities
        !           152: .RI ( uucico ,
        !           153: .IR uucp ,
        !           154: .IR uux ,
        !           155: and
        !           156: .IR uuxqt )
        !           157: always have access to the \s-1UUCP\s0 spool files in
        !           158: .IR /var/spool/uucp ,
        !           159: regardless of pathnames in
        !           160: .IR USERFILE .
        !           161: .PP
        !           162: If
        !           163: .B uucp
        !           164: is listed in
        !           165: .IR L.cmds (5),
        !           166: then a remote system will execute
        !           167: .I uucp 
        !           168: on the local system with the
        !           169: .I USERFILE
        !           170: privileges for its
        !           171: .IR login ,
        !           172: not its hostname.
        !           173: .PP
        !           174: .I Uucico
        !           175: freely switches between master and slave roles during the course of a
        !           176: conversation, regardless of the role it was started with.
        !           177: This affects how
        !           178: .I USERFILE
        !           179: is interpreted.
        !           180: .SH WARNING
        !           181: .I USERFILE
        !           182: restricts access only on strings that the \s-1UUCP\s0 utilities identify
        !           183: as being pathnames.
        !           184: If the wrong holes are left in other \s-1UUCP\s0 control files (notably
        !           185: .IR L.cmds ),
        !           186: it can be easy for an intruder to open files anywhere in the file system.
        !           187: Arguments to
        !           188: .IR uucp (1C)
        !           189: are safe, since it assumes all of its non-option arguments are files.
        !           190: .IR Uux (1C)
        !           191: cannot make such assumptions; hence, it is more dangerous.
        !           192: .SH BUGS
        !           193: The
        !           194: .I "\s-1UUCP\s0 Implementation Description"
        !           195: explicitly states that all remote login names must be listed in
        !           196: .IR USERFILE .
        !           197: This requirement is not enforced by Berkeley \s-1UUCP\s0, although it is
        !           198: by USG \s-1UUCP\s0.
        !           199: .PP
        !           200: Early versions of 4.2BSD
        !           201: .IR uuxqt (8)
        !           202: erroneously check \s-1UUCP\s0 spool files against the
        !           203: .I USERFILE
        !           204: pathname permissions.
        !           205: Hence, on these systems it is necessary to specify
        !           206: .I /var/spool/uucp
        !           207: as a valid path on the
        !           208: .I USERFILE
        !           209: line used by
        !           210: .IR uuxqt .
        !           211: Otherwise, all
        !           212: .IR uux (1C)
        !           213: requests are rejected with a "PERMISSION DENIED" message.

unix.superglobalmegacorp.com

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