CHMOD(1)                    NetBSD Reference Manual                   CHMOD(1)

NNAAMMEE
     cchhmmoodd - change file modes

SSYYNNOOPPSSIISS
     cchhmmoodd [--RR [--HH | --LL | --PP]] _m_o_d_e _f_i_l_e _._._.

DDEESSCCRRIIPPTTIIOONN
     The cchhmmoodd utility modifies the file mode bits of the listed files as
     specified by the _m_o_d_e operand.

     The options are as follows:

     --HH      If the --RR option is specified, symbolic links on the command line
             are followed.  (Symbolic links encountered in the tree traversal
             are not followed.)

     --LL      If the --RR option is specified, all symbolic links are followed.

     --PP      If the --RR option is specified, no symbolic links are followed.

     --RR      Change the modes of the file hierarchies rooted in the files in-
             stead of just the files themselves.

     Symbolic links do not have modes, so unless the --HH or --LL option is set,
     cchhmmoodd on a symbolic link always succeeds and has no effect.  The --HH, --LL
     and --PP options are ignored unless the --RR option is specified.  In addi-
     tion, these options override each other and the command's actions are de-
     termined by the last one specified.

     Only the owner of a file or the super-user is permitted to change the
     mode of a file.

     The cchhmmoodd utility exits 0 on success, and >0 if an error occurs.

MMOODDEESS
     Modes may be absolute or symbolic.  An absolute mode is an octal number
     constructed by _o_r_-_i_n_g the following values:

           4000    set-user-ID-on-execution
           2000    set-group-ID-on-execution
           1000    sticky bit, see chmod(2)
           0400    read by owner
           0200    write by owner
           0100    execute (or search for directories) by owner
           0070    read, write, execute/search by group
           0007    read, write, execute/search by others

     The read, write, and execute/search values for group and others are en-
     coded as described for owner.

     The symbolic mode is described by the following grammar:

           mode         ::= clause [, clause ...]
           clause       ::= [who ...] [action ...] last_action
           action       ::= op [perm ...]
           last_action  ::= op [perm ...]
           who          ::= a | u | g | o
           op           ::= + | - | =
           perm         ::= r | s | t | w | x | X | u | g | o

     The _w_h_o symbols ``u'', ``g'', and ``o'' specify the user, group, and oth-
     er parts of the mode bits, respectively.  The _w_h_o symbol ``a'' is equiva-
     lent to ``ugo''.

     The _p_e_r_m symbols represent the portions of the mode bits as follows:

           r       The read bits.
           s       The set-user-ID-on-execution and set-group-ID-on-execution
                   bits.
           t       The sticky bit.
           w       The write bits.
           x       The execute/search bits.
           X       The execute/search bits if the file is a directory or any
                   of the execute/search bits are set in the original (unmodi-
                   fied) mode.  Operations with the _p_e_r_m symbol ``X'' are only
                   meaningful in conjunction with the _o_p symbol ``+'', and are
                   ignored in all other cases.
           u       The user permission bits in the mode of the original file.
           g       The group permission bits in the mode of the original file.
           o       The other permission bits in the mode of the original file.

     The _o_p symbols represent the operation performed, as follows:

     +     If no value is supplied for _p_e_r_m, the ``+'' operation has no ef-
           fect.  If no value is supplied for _w_h_o, each permission bit speci-
           fied in _p_e_r_m, for which the corresponding bit in the file mode cre-
           ation mask is clear, is set.  Otherwise, the mode bits represented
           by the specified _w_h_o and _p_e_r_m values are set.

     -     If no value is supplied for _p_e_r_m, the ``-'' operation has no ef-
           fect.  If no value is supplied for _w_h_o, each permission bit speci-
           fied in _p_e_r_m, for which the corresponding bit in the file mode cre-
           ation mask is clear, is cleared.  Otherwise, the mode bits repre-
           sented by the specified _w_h_o and _p_e_r_m values are cleared.

     =     The mode bits specified by the _w_h_o value are cleared, or, if no who
           value is specified, the owner, group and other mode bits are
           cleared.  Then, if no value is supplied for _w_h_o, each permission
           bit specified in _p_e_r_m, for which the corresponding bit in the file
           mode creation mask is clear, is set.  Otherwise, the mode bits rep-
           resented by the specified _w_h_o and _p_e_r_m values are set.

     Each _c_l_a_u_s_e specifies one or more operations to be performed on the mode
     bits, and each operation is applied to the mode bits in the order speci-
     fied.

     Operations upon the other permissions only (specified by the symbol ``o''
     by itself), in combination with the _p_e_r_m symbols ``s'' or ``t'', are ig-
     nored.

EEXXAAMMPPLLEESS
     644           make a file readable by anyone and writable by the owner
                   only.

     go-w          deny write permission to group and others.

     =rw,+X        set the read and write permissions to the usual defaults,
                   but retain any execute permissions that are currently set.

     +X            make a directory or file searchable/executable by everyone
                   if it is already searchable/executable by anyone.

     755
     u=rwx,go=rx
     u=rwx,go=u-w  make a file readable/executable by everyone and writable by
                   the owner only.



     go=           clear all mode bits for group and others.

     g=u-w         set the group bits equal to the user bits, but clear the
                   group write bit.

BBUUGGSS
     There's no _p_e_r_m option for the naughty bits.

SSEEEE AALLSSOO
     install(1),  chmod(2),  stat(2),  umask(2),  fts(3),  setmode(3),
     symlink(7),  chown(8)

SSTTAANNDDAARRDDSS
     The cchhmmoodd utility is expected to be IEEE Std1003.2 (``POSIX.2'') compati-
     ble with the exception of the _p_e_r_m symbols ``t'' and ``X'' which are not
     included in that standard.

BSD Experimental              September 15, 1996                             3
