1.\"- 2.\" Copyright (c) 1989, 1990, 1993, 1994 3.\" The Regents of the University of California. All rights reserved. 4.\" 5.\" This code is derived from software contributed to Berkeley by 6.\" the Institute of Electrical and Electronics Engineers, Inc. 7.\" 8.\" Redistribution and use in source and binary forms, with or without 9.\" modification, are permitted provided that the following conditions 10.\" are met: 11.\" 1. Redistributions of source code must retain the above copyright 12.\" notice, this list of conditions and the following disclaimer. 13.\" 2. Redistributions in binary form must reproduce the above copyright 14.\" notice, this list of conditions and the following disclaimer in the 15.\" documentation and/or other materials provided with the distribution. 16.\" 3. Neither the name of the University nor the names of its contributors 17.\" may be used to endorse or promote products derived from this software 18.\" without specific prior written permission. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.Dd January 7, 2017 33.Dt CHMOD 1 34.Os 35.Sh NAME 36.Nm chmod 37.Nd change file modes 38.Sh SYNOPSIS 39.Nm 40.Op Fl fhv 41.Op Fl R Op Fl H | L | P 42.Ar mode 43.Ar 44.Sh DESCRIPTION 45The 46.Nm 47utility modifies the file mode bits of the listed files 48as specified by the 49.Ar mode 50operand. 51.Pp 52The options are as follows: 53.Bl -tag -width indent 54.It Fl f 55Do not display a diagnostic message if 56.Nm 57could not modify the mode for 58.Va file , 59nor modify the exit status to reflect such failures. 60.It Fl H 61If the 62.Fl R 63option is specified, symbolic links on the command line are followed 64and hence unaffected by the command. 65(Symbolic links encountered during tree traversal are not followed.) 66.It Fl h 67If the file is a symbolic link, change the mode of the link itself 68rather than the file that the link points to. 69.It Fl L 70If the 71.Fl R 72option is specified, all symbolic links are followed. 73.It Fl P 74If the 75.Fl R 76option is specified, no symbolic links are followed. 77This is the default. 78.It Fl R 79Change the modes of the file hierarchies rooted in the files, 80instead of just the files themselves. 81Beware of unintentionally matching the 82.Dq Pa ".." 83hard link to the parent directory when using wildcards like 84.Dq Li ".*" . 85.It Fl v 86Cause 87.Nm 88to be verbose, showing filenames as the mode is modified. 89If the 90.Fl v 91flag is specified more than once, the old and new modes of the file 92will also be printed, in both octal and symbolic notation. 93.El 94.Pp 95The 96.Fl H , 97.Fl L 98and 99.Fl P 100options are ignored unless the 101.Fl R 102option is specified. 103In addition, these options override each other and the 104command's actions are determined by the last one specified. 105.Pp 106If 107.Nm 108receives a 109.Dv SIGINFO 110signal (see the 111.Cm status 112argument for 113.Xr stty 1 ) , 114then the current filename as well as the old and new modes are displayed. 115.Pp 116Only the owner of a file or the super-user is permitted to change 117the mode of a file. 118.Sh EXIT STATUS 119.Ex -std 120.Sh MODES 121Modes may be absolute or symbolic. 122An absolute mode is an octal number constructed from the sum of 123one or more of the following values: 124.Pp 125.Bl -tag -width 6n -compact -offset indent 126.It Li 4000 127(the setuid bit). 128Executable files with this bit set 129will run with effective uid set to the uid of the file owner. 130Directories with this bit set will force all files and 131sub-directories created in them to be owned by the directory owner 132and not by the uid of the creating process, if the underlying file 133system supports this feature: see 134.Xr chmod 2 135and the 136.Cm suiddir 137option to 138.Xr mount 8 . 139.It Li 2000 140(the setgid bit). 141Executable files with this bit set 142will run with effective gid set to the gid of the file owner. 143.It Li 1000 144(the sticky bit). 145See 146.Xr chmod 2 147and 148.Xr sticky 7 . 149.It Li 0400 150Allow read by owner. 151.It Li 0200 152Allow write by owner. 153.It Li 0100 154For files, allow execution by owner. 155For directories, allow the owner to 156search in the directory. 157.It Li 0040 158Allow read by group members. 159.It Li 0020 160Allow write by group members. 161.It Li 0010 162For files, allow execution by group members. 163For directories, allow 164group members to search in the directory. 165.It Li 0004 166Allow read by others. 167.It Li 0002 168Allow write by others. 169.It Li 0001 170For files, allow execution by others. 171For directories allow others to 172search in the directory. 173.El 174.Pp 175For example, the absolute mode that permits read, write and execute by 176the owner, read and execute by group members, read and execute by 177others, and no set-uid or set-gid behaviour is 755 178(400+200+100+040+010+004+001). 179.Pp 180The symbolic mode is described by the following grammar: 181.Bd -literal -offset indent 182mode ::= clause [, clause ...] 183clause ::= [who ...] [action ...] action 184action ::= op [perm ...] 185who ::= a | u | g | o 186op ::= + | \- | = 187perm ::= r | s | t | w | x | X | u | g | o 188.Ed 189.Pp 190The 191.Ar who 192symbols ``u'', ``g'', and ``o'' specify the user, group, and other parts 193of the mode bits, respectively. 194The 195.Ar who 196symbol ``a'' is equivalent to ``ugo''. 197.Pp 198The 199.Ar perm 200symbols represent the portions of the mode bits as follows: 201.Pp 202.Bl -tag -width Ds -compact -offset indent 203.It r 204The read bits. 205.It s 206The set-user-ID-on-execution and set-group-ID-on-execution bits. 207.It t 208The sticky bit. 209.It w 210The write bits. 211.It x 212The execute/search bits. 213.It X 214The execute/search bits if the file is a directory or any of the 215execute/search bits are set in the original (unmodified) mode. 216Operations with the 217.Ar perm 218symbol ``X'' are only meaningful in conjunction with the 219.Ar op 220symbol ``+'', and are ignored in all other cases. 221.It u 222The user permission bits in the original mode of the file. 223.It g 224The group permission bits in the original mode of the file. 225.It o 226The other permission bits in the original mode of the file. 227.El 228.Pp 229The 230.Ar op 231symbols represent the operation performed, as follows: 232.Bl -tag -width 4n 233.It + 234If no value is supplied for 235.Ar perm , 236the ``+'' operation has no effect. 237If no value is supplied for 238.Ar who , 239each permission bit specified in 240.Ar perm , 241for which the corresponding bit in the file mode creation mask 242(see 243.Xr umask 2 ) 244is clear, is set. 245Otherwise, the mode bits represented by the specified 246.Ar who 247and 248.Ar perm 249values are set. 250.It \&\- 251If no value is supplied for 252.Ar perm , 253the ``\-'' operation has no effect. 254If no value is supplied for 255.Ar who , 256each permission bit specified in 257.Ar perm , 258for which the corresponding bit in the file mode creation mask 259is set, is cleared. 260Otherwise, the mode bits represented by the specified 261.Ar who 262and 263.Ar perm 264values are cleared. 265.It = 266The mode bits specified by the 267.Ar who 268value are cleared, or, if no 269.Ar who 270value is specified, the owner, group 271and other mode bits are cleared. 272Then, if no value is supplied for 273.Ar who , 274each permission bit specified in 275.Ar perm , 276for which the corresponding bit in the file mode creation mask 277is clear, is set. 278Otherwise, the mode bits represented by the specified 279.Ar who 280and 281.Ar perm 282values are set. 283.El 284.Pp 285Each 286.Ar clause 287specifies one or more operations to be performed on the mode 288bits, and each operation is applied to the mode bits in the 289order specified. 290.Pp 291Operations upon the other permissions only (specified by the symbol 292``o'' by itself), in combination with the 293.Ar perm 294symbols ``s'' or ``t'', are ignored. 295.Pp 296The ``w'' permission on directories will permit file creation, relocation, 297and copy into that directory. 298Files created within the directory itself will inherit its group ID. 299.Sh EXAMPLES 300.Bl -tag -width "u=rwx,go=u-w" -compact 301.It Li 644 302make a file readable by anyone and writable by the owner only. 303.Pp 304.It Li go-w 305deny write permission to group and others. 306.Pp 307.It Li =rw,+X 308set the read and write permissions to the usual defaults, but 309retain any execute permissions that are currently set. 310.Pp 311.It Li +X 312make a directory or file searchable/executable by everyone if it is 313already searchable/executable by anyone. 314.Pp 315.It Li 755 316.It Li u=rwx,go=rx 317.It Li u=rwx,go=u-w 318make a file readable/executable by everyone and writable by the owner only. 319.Pp 320.It Li go= 321clear all mode bits for group and others. 322.Pp 323.It Li g=u-w 324set the group bits equal to the user bits, but clear the group write bit. 325.El 326.Sh COMPATIBILITY 327The 328.Fl v 329option is non-standard and its use in scripts is not recommended. 330.Sh SEE ALSO 331.Xr chflags 1 , 332.Xr install 1 , 333.Xr setfacl 1 , 334.Xr chmod 2 , 335.Xr stat 2 , 336.Xr umask 2 , 337.Xr fts 3 , 338.Xr setmode 3 , 339.Xr sticky 7 , 340.Xr symlink 7 , 341.Xr chown 8 , 342.Xr mount 8 343.Sh STANDARDS 344The 345.Nm 346utility is expected to be 347.St -p1003.2 348compatible with the exception of the 349.Ar perm 350symbol 351.Dq t 352which is not included in that standard. 353.Sh HISTORY 354A 355.Nm 356command appeared in 357.At v1 . 358.Sh BUGS 359There is no 360.Ar perm 361option for the naughty bits of a horse. 362