xref: /freebsd/bin/chflags/chflags.1 (revision 0b3105a37d7adcadcb720112fed4dc4e8040be99)
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.\" 4. 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.\"	@(#)chflags.1	8.4 (Berkeley) 5/2/95
33.\" $FreeBSD$
34.\"
35.Dd April 20, 2015
36.Dt CHFLAGS 1
37.Os
38.Sh NAME
39.Nm chflags
40.Nd change file flags
41.Sh SYNOPSIS
42.Nm
43.Op Fl fhv
44.Oo
45.Fl R
46.Op Fl H | Fl L | Fl P
47.Oc
48.Ar flags
49.Ar
50.Sh DESCRIPTION
51The
52.Nm
53utility modifies the file flags of the listed files
54as specified by the
55.Ar flags
56operand.
57.Pp
58The options are as follows:
59.Bl -tag -width indent
60.It Fl f
61Do not display a diagnostic message if
62.Nm
63could not modify the flags for
64.Va file ,
65nor modify the exit status to reflect such failures.
66.It Fl H
67If the
68.Fl R
69option is specified, symbolic links on the command line are followed
70and hence unaffected by the command.
71(Symbolic links encountered during traversal are not followed.)
72.It Fl h
73If the
74.Ar file
75is a symbolic link,
76change the file flags of the link itself rather than the file to which it points.
77.It Fl L
78If the
79.Fl R
80option is specified, all symbolic links are followed.
81.It Fl P
82If the
83.Fl R
84option is specified, no symbolic links are followed.
85This is the default.
86.It Fl R
87Change the file flags of the file hierarchies rooted in the files,
88instead of just the files themselves.
89Beware of unintentionally matching the
90.Dq Pa ".."
91hard link to the parent directory when using wildcards like
92.Dq Li ".*" .
93.It Fl v
94Cause
95.Nm
96to be verbose, showing filenames as the flags are modified.
97If the
98.Fl v
99option is specified more than once, the old and new flags of the file
100will also be printed, in octal notation.
101.El
102.Pp
103The flags are specified as an octal number or a comma separated list
104of keywords.
105The following keywords are currently defined:
106.Bl -tag -offset indent -width ".Cm opaque"
107.It Cm arch , archived
108set the archived flag (super-user only)
109.It Cm nodump
110set the nodump flag (owner or super-user only)
111.It Cm opaque
112set the opaque flag (owner or super-user only)
113.It Cm sappnd , sappend
114set the system append-only flag (super-user only)
115.It Cm schg , schange , simmutable
116set the system immutable flag (super-user only)
117.It Cm snapshot
118set the snapshot flag (filesystems do not allow changing this flag)
119.It Cm sunlnk , sunlink
120set the system undeletable flag (super-user only)
121.It Cm uappnd , uappend
122set the user append-only flag (owner or super-user only)
123.It Cm uarch , uarchive
124set the archive flag (owner or super-user only)
125.It Cm uchg , uchange , uimmutable
126set the user immutable flag (owner or super-user only)
127.It Cm uhidden , hidden
128set the hidden file attribute (owner or super-user only)
129.It Cm uoffline , offline
130set the offline file attribute (owner or super-user only)
131.It Cm urdonly , rdonly , readonly
132set the DOS, Windows and CIFS readonly flag (owner or super-user only)
133.It Cm usparse , sparse
134set the sparse file attribute (owner or super-user only)
135.It Cm usystem , system
136set the DOS, Windows and CIFS system flag (owner or super-user only)
137.It Cm ureparse , reparse
138set the Windows reparse point file attribute (owner or super-user only)
139.It Cm uunlnk , uunlink
140set the user undeletable flag (owner or super-user only)
141.El
142.Pp
143Putting the letters
144.Dq Ar no
145before or removing the letters
146.Dq Ar no
147from a keyword causes the flag to be cleared.
148For example:
149.Pp
150.Bl -tag -offset indent -width "nouchg" -compact
151.It Cm nouchg
152clear the user immutable flag (owner or super-user only)
153.It Cm dump
154clear the nodump flag (owner or super-user only)
155.El
156.Pp
157A few of the octal values include:
158.Bl -tag -offset indent -width ".Li 10"
159.It Li 0
160Clear all file flags.
161.It Li 1
162Translates to the
163.Cm nodump
164keyword.
165.It Li 2
166Translates to the
167.Cm uchg
168keyword.
169.It Li 3
170Translates to the
171.Cm uchg , nodump
172keywords.
173.It Li 4
174Translates to the
175.Cm uappnd
176keyword.
177.It Li 10
178Translates to the
179.Cm opaque
180keyword.
181.It Li 20
182translates to the
183.Cm uunlnk
184keyword.
185.El
186.Pp
187Other combinations of keywords may be placed by using
188the octets assigned; however, these are the most notable.
189.Pp
190Unless the
191.Fl H ,
192.Fl L ,
193or
194.Fl h
195options are given,
196.Nm
197on a symbolic link always succeeds and has no effect.
198The
199.Fl H ,
200.Fl L
201and
202.Fl P
203options are ignored unless the
204.Fl R
205option is specified.
206In addition, these options override each other and the
207command's actions are determined by the last one specified.
208.Pp
209You can use "ls -lo" to see the flags of existing files.
210.Pp
211Note that the ability to change certain flags is dependent
212on the current kernel
213.Va securelevel
214setting.
215See
216.Xr security 7
217for more information on this setting.
218.Sh EXIT STATUS
219.Ex -std
220.Sh SEE ALSO
221.Xr ls 1 ,
222.Xr chflags 2 ,
223.Xr stat 2 ,
224.Xr fts 3 ,
225.Xr security 7 ,
226.Xr symlink 7
227.Sh HISTORY
228The
229.Nm
230command first appeared in
231.Bx 4.4 .
232.Sh BUGS
233Only a limited number of utilities are
234.Nm
235aware.
236Some of these tools include
237.Xr ls 1 ,
238.Xr cp 1 ,
239.Xr find 1 ,
240.Xr install 1 ,
241.Xr dump 8 ,
242and
243.Xr restore 8 .
244In particular a tool which is not currently
245.Nm
246aware is the
247.Xr pax 1
248utility.
249