|
|
1.1 root 1: .\" Copyright (c) 1989, 1990 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted provided
5: .\" that: (1) source distributions retain this entire copyright notice and
6: .\" comment, and (2) distributions including binaries display the following
7: .\" acknowledgement: ``This product includes software developed by the
8: .\" University of California, Berkeley and its contributors'' in the
9: .\" documentation or other materials provided with the distribution and in
10: .\" all advertising materials mentioning features or use of this software.
11: .\" Neither the name of the University nor the names of its contributors may
12: .\" be used to endorse or promote products derived from this software without
13: .\" specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)chmod.1 6.10 (Berkeley) 7/24/90
19: .\"
20: .Dd July 24, 1990
21: .Dt CHMOD 1
22: .Os BSD 4.4
23: .Sh NAME
24: .Nm chmod
25: change file modes
26: .Sh SYNOPSIS
27: .Nm chmod
28: .Op Fl fR
29: .Ar mode
30: .Ar file ...
31: .Sh DESCRIPTION
32: The
33: .Nm chmod
34: utility modifies the file mode bits of the listed files
35: as specified by the
36: .Ar mode
37: operand.
38: .Pp
39: The options are as follows:
40: .Tw Ds
41: .Tp Fl f
42: .Nm chmod
43: will still exit 0 and not complain if it fails to change the mode
44: on a file.
45: .Tp Fl R
46: Traverse a file hierarchy.
47: For each file that is of type directory,
48: .Nm chmod
49: changes the mode of all files in the file hierarchy below it followed
50: by the mode of the directory itself.
51: .Tp
52: .Pp
53: Symbolic links are not indirected through, nor are their modes altered.
54: .Pp
55: Only the owner of a file or the super-user is permitted to change
56: the mode of a file.
57: .Pp
58: The
59: .Nm chmod
60: utility exits 0 on success, and >0 if an error occurs.
61: .Sh MODES
62: Modes may be absolute or symbolic.
63: An absolute mode is an octal number constructed by
64: .Cx Ar or
65: .Cx 'ing
66: .Cx
67: the following values:
68: .Df I
69: .Dw Fl
70: .Dp Li 4000
71: set-user-ID-on-execution
72: .Dp Li 2000
73: set-group-ID-on-execution
74: .Dp Li 1000
75: sticky bit, see chmod(2)
76: .Dp Li 0400
77: read by owner
78: .Dp Li 0200
79: write by owner
80: .Dp Li 0100
81: execute (or search for directories) by owner
82: .Dp Li 0070
83: read, write, execute/search by group
84: .Dp Li 0007
85: read, write, execute/search by others
86: .Dp
87: .De
88: .Pp
89: The read, write, and execute/search values for group and others
90: are encoded as described for owner.
91: .Pp
92: The symbolic mode is described by the following grammar:
93: .Dp Li mode
94: ::= clause
95: .Op \&, clause
96: ...
97: .Dp Li clause
98: ::=
99: .Op who ...
100: .Op action ...
101: last_action
102: .Dp Li action
103: ::= op perm ...
104: .Dp Li last_action
105: ::= op
106: .Op perm ...
107: .Dp Li who
108: .Li ::= a | u | g | o
109: .Dp Li op
110: .Li ::= + | - | =
111: .Dp Li perm
112: .Li ::= r | s | t | w | X | x
113: .Dp
114: .Pp
115: The
116: .Ar who
117: symbols ``u'', ``g'', and ``o'' specify the user, group, and other parts
118: of the mode bits, respectively.
119: The
120: .Ar who
121: symbol ``a'' is equivalent to ``ugo''.
122: .Pp
123: The
124: .Ar perm
125: symbols represent the portions of the mode bits as follows:
126: .Dw Ds
127: .Dp r
128: The read bits.
129: .Dp s
130: The set-user-ID-on-execution and set-group-ID-on-execution bits.
131: .Dp t
132: The sticky bit.
133: .Dp w
134: The write bits.
135: .Dp x
136: The execute/search bits.
137: .Dp X
138: The execute/search bits if the file is a directory or any of the
139: execute/search bits are set in the original (unmodified) mode.
140: Operations with the
141: .Ar perm
142: symbol ``X'' are only meaningful in conjunction with the
143: .Ar op
144: symbol ``+'', and it is ignored in all other cases.
145: .Dp
146: .Pp
147: The
148: .Ar op
149: symbols represent the operation performed, as follows:
150: .Tw Ds
151: .Tp \&+
152: If no value is supplied for
153: .Ar perm ,
154: the ``+'' operation has no effect.
155: If no value is supplied for
156: .Ar who ,
157: each permission bit specified in
158: .Ar perm ,
159: for which the corresponding bit in the file mode creation mask
160: is clear, is set.
161: Otherwise, the mode bits represented by the specified
162: .Ar who
163: and
164: .Ar perm
165: values are set.
166: .Tp \&-
167: If no value is supplied for
168: .Ar perm ,
169: the ``-'' operation has no effect.
170: If no value is supplied for
171: .Ar who ,
172: the mode bits represented by
173: .Ar perm
174: are cleared for the owner, group and other permissions.
175: Otherwise, the mode bits represented by the specified
176: .Ar who
177: and
178: .Ar perm
179: values are cleared.
180: .Tp \&=
181: The mode bits specified by the
182: .Ar who
183: value are cleared, or, if no who value is specified, the owner, group
184: and other mode bits are cleared.
185: Then, if no value is supplied for
186: .Ar who ,
187: each permission bit specified in
188: .Ar perm ,
189: for which the corresponding bit in the file mode creation mask
190: is clear, is set.
191: Otherwise, the mode bits represented by the specified
192: .Ar who
193: and
194: .Ar perm
195: values are set.
196: .Tp
197: .Pp
198: Each
199: .Ar clause
200: specifies one or more operations to be performed on the mode
201: bits, and each operation is applied to the mode bits in the
202: order specified.
203: .Pp
204: Operations upon the other permissions only (specified by the symbol
205: ``o'' by itself), in combination with the
206: .Ar perm
207: symbols ``s'' or ``t'', are ignored.
208: .Sh EXAMPLES
209: .Tw Ar
210: .Tp ``644''
211: make a file readable by anyone and writable by the owner only.
212: .Tp ``go-w''
213: deny write permission to group and others.
214: .Tp ``=rw,+X''
215: set the read and write permissions to the usual defaults, but
216: retain any execute permissions that are currently set.
217: .Tp ``+X''
218: make a directory or file searchable/executable by everyone if it is
219: already searchable/executable by anyone.
220: .Tp ``755'' or ``u=rwx,go=rx''
221: make a file readable/executable by everyone and writeable by the owner only.
222: .Tp ``go=''
223: clear all mode bits for group and others.
224: .Tp
225: .Sh BUGS
226: There's no
227: .Ar perm
228: option for the naughty bits.
229: .Sh SEE ALSO
230: .Xr install 1 ,
231: .Xr chmod 2 ,
232: .Xr fts 2 ,
233: .Xr stat 2 ,
234: .Xr umask 2 ,
235: .Xr setmode 3 ,
236: .Xr chown 8
237: .Sh STANDARDS
238: The
239: .Nm chmod
240: utility is expected to be POSIX 1003.2 compatible with the exception
241: of the
242: .Ar perm
243: symbols ``t'' and ``X'' which are not included in that standard.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.