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

1.1     ! root        1: 
        !             2: 
        !             3: 
        !             4: USERFILE(5)                  1990                    USERFILE(5)
        !             5: 
        !             6: 
        !             7: 
        !             8: NNAAMMEE
        !             9:      USERFILE - UUCP pathname permissions file
        !            10: 
        !            11: DDEESSCCRRIIPPTTIIOONN
        !            12:      The _U_S_E_R_F_I_L_E file specifies the file system directory trees
        !            13:      that are accessible to local users and to remote systems via
        !            14:      UUCP.
        !            15: 
        !            16:      Each line in _U_S_E_R_F_I_L_E is of the form:
        !            17: 
        !            18:      [_l_o_g_i_n_n_a_m_e],,[_s_y_s_t_e_m] [ cc ] _p_a_t_h_n_a_m_e [_p_a_t_h_n_a_m_e] [_p_a_t_h_n_a_m_e]
        !            19: 
        !            20:      The first two items are separated by a comma; any number of
        !            21:      spaces or tabs may separate the remaining items.  Lines
        !            22:      beginning with a `#' character are comments.  A trailing `\'
        !            23:      indicates that the next line is a continuation of the
        !            24:      current line.
        !            25: 
        !            26:      _L_o_g_i_n_n_a_m_e is a login (from /_e_t_c/_p_a_s_s_w_d) on the local
        !            27:      machine.
        !            28: 
        !            29:      _S_y_s_t_e_m is the name of a remote machine, the same name used
        !            30:      in _L._s_y_s(5).
        !            31: 
        !            32:      _c denotes the optional _c_a_l_l_b_a_c_k field.  If a cc appears here,
        !            33:      a remote machine that calls in will be told that callback is
        !            34:      requested, and the conversation will be terminated.  The
        !            35:      local system will then immediately call the remote host
        !            36:      back.
        !            37: 
        !            38:      _P_a_t_h_n_a_m_e is a pathname prefix that is permissible for this
        !            39:      _l_o_g_i_n and/or _s_y_s_t_e_m.
        !            40: 
        !            41:      When _u_u_c_i_c_o(8C) runs in master role or _u_u_c_p(1C) or _u_u_x(1C)
        !            42:      are run by local users, the permitted pathnames are those on
        !            43:      the first line with a _l_o_g_i_n_n_a_m_e that matches the name of the
        !            44:      user who executed the command.  If no such line exists, then
        !            45:      the first line with a null (missing) _l_o_g_i_n_n_a_m_e field is
        !            46:      used.  (Beware: _u_u_c_i_c_o is often run by the superuser or the
        !            47:      UUCP administrator through _c_r_o_n(8).)
        !            48: 
        !            49:      When _u_u_c_i_c_o runs in slave role, the permitted pathnames are
        !            50:      those on the first line with a _s_y_s_t_e_m field that matches the
        !            51:      hostname of the remote machine.  If no such line exists,
        !            52:      then the first line with a null (missing) _s_y_s_t_e_m field is
        !            53:      used.
        !            54: 
        !            55:      _U_u_x_q_t(8) works differently; it knows neither a login name
        !            56:      nor a hostname.  It accepts the pathnames on the first line
        !            57:      that has a null _s_y_s_t_e_m field.  (This is the same line that
        !            58:      is used by _u_u_c_i_c_o when it cannot match the remote machine's
        !            59:      hostname.)
        !            60: 
        !            61: 
        !            62: 
        !            63: Printed 7/4/90               June                              1
        !            64: 
        !            65: 
        !            66: 
        !            67: 
        !            68: 
        !            69: 
        !            70: USERFILE(5)                  1990                    USERFILE(5)
        !            71: 
        !            72: 
        !            73: 
        !            74:      A line with both _l_o_g_i_n_n_a_m_e and _s_y_s_t_e_m null, for example
        !            75: 
        !            76:          ,, //vvaarr//ssppooooll//uuuuccppppuubblliicc
        !            77: 
        !            78:      can be used to conveniently specify the paths for both "no
        !            79:      match" cases if lines earlier in _U_S_E_R_F_I_L_E did not define
        !            80:      them.  (This differs from older Berkeley and all USG ver-
        !            81:      sions, where each case must be individually specified.  If
        !            82:      neither case is defined earlier, a "null" line only defines
        !            83:      the "unknown login" case.)
        !            84: 
        !            85:      To correctly process _l_o_g_i_n_n_a_m_e on systems that assign
        !            86:      several logins per UID, the following strategy is used to
        !            87:      determine the current _l_o_g_i_n_n_a_m_e:
        !            88: 
        !            89:      1)   If the process is attached to a terminal, a login entry
        !            90:          exists in /_v_a_r/_r_u_n/_u_t_m_p, and the UID for the _u_t_m_p name
        !            91:          matches the current real UID, then _l_o_g_i_n_n_a_m_e is set to
        !            92:          the _u_t_m_p name.
        !            93: 
        !            94:      2)   If the UUSSEERR environment variable is defined and the UID
        !            95:          for this name matches the current real UID, then _l_o_g_i_n_-
        !            96:          _n_a_m_e is set to the name in UUSSEERR.
        !            97: 
        !            98:      3)   If both of the above fail, call _g_e_t_p_w_u_i_d(3) to fetch
        !            99:          the first name in /_e_t_c/_p_a_s_s_w_d that matches the real
        !           100:          UID.
        !           101: 
        !           102:      4)   If all of the above fail, the utility aborts.
        !           103: 
        !           104: FFIILLEESS
        !           105:      /usr/lib/uucp/USERFILE
        !           106:      /usr/lib/uucp/UUAIDS/USERFILE   USERFILE example
        !           107: 
        !           108: SSEEEE AALLSSOO
        !           109:      uucp(1C), uux(1C), L.cmds(5), L.sys(5), uucico(8C),
        !           110:      uuxqt(8C)
        !           111: 
        !           112: NNOOTTEESS
        !           113:      The UUCP utilities (_u_u_c_i_c_o, _u_u_c_p, _u_u_x, and _u_u_x_q_t) always
        !           114:      have access to the UUCP spool files in /_v_a_r/_s_p_o_o_l/_u_u_c_p,
        !           115:      regardless of pathnames in _U_S_E_R_F_I_L_E.
        !           116: 
        !           117:      If uuuuccpp is listed in _L._c_m_d_s(5), then a remote system will
        !           118:      execute _u_u_c_p on the local system with the _U_S_E_R_F_I_L_E
        !           119:      privileges for its _l_o_g_i_n, not its hostname.
        !           120: 
        !           121:      _U_u_c_i_c_o freely switches between master and slave roles during
        !           122:      the course of a conversation, regardless of the role it was
        !           123:      started with.  This affects how _U_S_E_R_F_I_L_E is interpreted.
        !           124: 
        !           125: 
        !           126: 
        !           127: 
        !           128: 
        !           129: Printed 7/4/90               June                              2
        !           130: 
        !           131: 
        !           132: 
        !           133: 
        !           134: 
        !           135: 
        !           136: USERFILE(5)                  1990                    USERFILE(5)
        !           137: 
        !           138: 
        !           139: 
        !           140: WWAARRNNIINNGG
        !           141:      _U_S_E_R_F_I_L_E restricts access only on strings that the UUCP
        !           142:      utilities identify as being pathnames.  If the wrong holes
        !           143:      are left in other UUCP control files (notably _L._c_m_d_s), it
        !           144:      can be easy for an intruder to open files anywhere in the
        !           145:      file system.  Arguments to _u_u_c_p(1C) are safe, since it
        !           146:      assumes all of its non-option arguments are files.  _U_u_x(1C)
        !           147:      cannot make such assumptions; hence, it is more dangerous.
        !           148: 
        !           149: BBUUGGSS
        !           150:      The _U_U_C_P _I_m_p_l_e_m_e_n_t_a_t_i_o_n _D_e_s_c_r_i_p_t_i_o_n explicitly states that
        !           151:      all remote login names must be listed in _U_S_E_R_F_I_L_E.  This
        !           152:      requirement is not enforced by Berkeley UUCP, although it is
        !           153:      by USG UUCP.
        !           154: 
        !           155:      Early versions of 4.2BSD _u_u_x_q_t(8) erroneously check UUCP
        !           156:      spool files against the _U_S_E_R_F_I_L_E pathname permissions.
        !           157:      Hence, on these systems it is necessary to specify
        !           158:      /_v_a_r/_s_p_o_o_l/_u_u_c_p as a valid path on the _U_S_E_R_F_I_L_E line used by
        !           159:      _u_u_x_q_t.  Otherwise, all _u_u_x(1C) requests are rejected with a
        !           160:      "PERMISSION DENIED" message.
        !           161: 
        !           162: 
        !           163: 
        !           164: 
        !           165: 
        !           166: 
        !           167: 
        !           168: 
        !           169: 
        !           170: 
        !           171: 
        !           172: 
        !           173: 
        !           174: 
        !           175: 
        !           176: 
        !           177: 
        !           178: 
        !           179: 
        !           180: 
        !           181: 
        !           182: 
        !           183: 
        !           184: 
        !           185: 
        !           186: 
        !           187: 
        !           188: 
        !           189: 
        !           190: 
        !           191: 
        !           192: 
        !           193: 
        !           194: 
        !           195: Printed 7/4/90               June                              3
        !           196: 
        !           197: 
        !           198: 

unix.superglobalmegacorp.com

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