1 .\" Copyright (c) 1989, 1993
2 .\" The Regents of the University of California. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 4. Neither the name of the University nor the names of its contributors
13 .\" may be used to endorse or promote products derived from this software
14 .\" without specific prior written permission.
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" @(#)chflags.2 8.3 (Berkeley) 5/2/95
45 .Fn chflags "const char *path" "unsigned long flags"
47 .Fn lchflags "const char *path" "unsigned long flags"
49 .Fn fchflags "int fd" "unsigned long flags"
51 .Fn chflagsat "int fd" "const char *path" "unsigned long flags" "int atflag"
56 or referenced by the descriptor
58 has its flags changed to
65 except in the case where the named file is a symbolic link,
68 will change the flags of the link itself,
69 rather than the file it points to.
73 is equivalent to either
79 except in the case where
81 specifies a relative path.
82 In this case the file to be changed is determined relative to the directory
83 associated with the file descriptor
85 instead of the current working directory.
88 are constructed by a bitwise-inclusive OR of flags from the following list,
91 .Bl -tag -width indent
92 .It Dv AT_SYMLINK_NOFOLLOW
95 names a symbolic link, then the flags of the symbolic link are changed.
100 is passed the special value
104 parameter, the current working directory is used.
107 is zero, the behavior is identical to a call to
110 The flags specified are formed by
114 .Bl -tag -width ".Dv SF_IMMUTABLE" -compact -offset indent
116 The file may only be appended to.
118 The file has been archived.
119 This flag means the opposite of the DOS, Windows and CIFS
120 FILE_ATTRIBUTE_ARCHIVE attribute.
121 This flag has been deprecated, and may be removed in a future release.
123 The file may not be changed.
125 The file may not be renamed or deleted.
127 The file is a snapshot file.
129 The file may only be appended to.
131 The file needs to be archived.
132 This flag has the same meaning as the DOS, Windows and CIFS
133 FILE_ATTRIBUTE_ARCHIVE attribute.
134 Filesystems in FreeBSD may or may not have special handling for this flag.
135 For instance, ZFS tracks changes to files and will set this bit when a
137 UFS only stores the flag, and relies on the application to change it when
140 The file may be hidden from directory listings at the application's
142 The file has the DOS, Windows and CIFS FILE_ATTRIBUTE_HIDDEN attribute.
144 The file may not be changed.
146 Do not dump the file.
148 The file may not be renamed or deleted.
150 The file is offline, or has the Windows and CIFS FILE_ATTRIBUTE_OFFLINE
152 Filesystems in FreeBSD store and display this flag, but do not provide any
153 special handling when it is set.
155 The directory is opaque when viewed through a union stack.
157 The file is read only, and may not be written or appended.
158 Filesystems may use this flag to maintain compatibility with the DOS, Windows
159 and CIFS FILE_ATTRIBUTE_READONLY attribute.
161 The file contains a Windows reparse point and has the Windows and CIFS
162 FILE_ATTRIBUTE_REPARSE_POINT attribute.
164 The file has the Windows FILE_ATTRIBUTE_SPARSE_FILE attribute.
165 This may also be used by a filesystem to indicate a sparse file.
167 The file has the DOS, Windows and CIFS FILE_ATTRIBUTE_SYSTEM attribute.
168 Filesystems in FreeBSD may store and display this flag, but do not provide
169 any special handling when it is set.
173 .Dv SF_IMMUTABLE , SF_APPEND ,
176 is set a non-super-user cannot change any flags and even the super-user
177 can change flags only if securelevel is 0.
183 .Dv UF_IMMUTABLE , UF_APPEND , UF_NOUNLINK , UF_NODUMP ,
186 flags may be set or unset by either the owner of a file or the super-user.
189 .Dv SF_IMMUTABLE , SF_APPEND , SF_NOUNLINK ,
192 flags may only be set or unset by the super-user.
193 Attempts to toggle these flags by non-super-users are rejected.
194 These flags may be set at any time, but normally may only be unset when
195 the system is in single-user mode.
200 The implementation of all flags is filesystem-dependent.
201 See the description of the
203 flag above for one example of the differences in behavior.
204 Care should be exercised when writing applications to account for
205 support or lack of support of these flags in various filesystems.
209 flag is maintained by the system and cannot be toggled.
215 system call will fail if:
218 A component of the path prefix is not a directory.
219 .It Bq Er ENAMETOOLONG
220 A component of a pathname exceeded 255 characters,
221 or an entire path name exceeded 1023 characters.
223 The named file does not exist.
225 Search permission is denied for a component of the path prefix.
227 Too many symbolic links were encountered in translating the pathname.
229 The effective user ID does not match the owner of the file and
230 the effective user ID is not the super-user.
233 .Dv SF_IMMUTABLE , SF_APPEND ,
236 is set and the user is either not the super-user or
237 securelevel is greater than 0.
239 A non-super-user attempted to toggle one of
240 .Dv SF_ARCHIVED , SF_IMMUTABLE , SF_APPEND ,
244 An attempt was made to toggle the
248 The named file resides on a read-only file system.
253 points outside the process's allocated address space.
257 error occurred while reading from or writing to the file system.
259 The underlying file system does not support file flags, or
260 does not support all of the flags set in
266 system call will fail if:
269 The descriptor is not valid.
274 refers to a socket, not to a file.
276 The effective user ID does not match the owner of the file and
277 the effective user ID is not the super-user.
280 .Dv SF_IMMUTABLE , SF_APPEND ,
283 is set and the user is either not the super-user or
284 securelevel is greater than 0.
286 A non-super-user attempted to toggle one of
287 .Dv SF_ARCHIVED , SF_IMMUTABLE , SF_APPEND ,
291 An attempt was made to toggle the
295 The file resides on a read-only file system.
299 error occurred while reading from or writing to the file system.
301 The underlying file system does not support file flags, or
302 does not support all of the flags set in
316 system calls first appeared in
320 system call first appeared in
324 system call first appeared in