1CHATTR(1) General Commands Manual CHATTR(1)
2
3
4
6 chattr - change file attributes on a Linux file system
7
9 chattr [ -RVf ] [ -v version ] [ -p project ] [ mode ] files...
10
12 chattr changes the file attributes on a Linux file system.
13
14 The format of a symbolic mode is +-=[aAcCdDeFijmPsStTux].
15
16 The operator '+' causes the selected attributes to be added to the ex‐
17 isting attributes of the files; '-' causes them to be removed; and '='
18 causes them to be the only attributes that the files have.
19
20 The letters 'aAcCdDeFijmPsStTux' select the new attributes for the
21 files: append only (a), no atime updates (A), compressed (c), no copy
22 on write (C), no dump (d), synchronous directory updates (D), extent
23 format (e), case-insensitive directory lookups (F), immutable (i), data
24 journaling (j), don't compress (m), project hierarchy (P), secure dele‐
25 tion (s), synchronous updates (S), no tail-merging (t), top of direc‐
26 tory hierarchy (T), undeletable (u), and direct access for files (x).
27
28 The following attributes are read-only, and may be listed by lsattr(1)
29 but not modified by chattr: encrypted (E), indexed directory (I), in‐
30 line data (N), and verity (V).
31
32 Not all flags are supported or utilized by all file systems; refer to
33 file system-specific man pages such as btrfs(5), ext4(5), mkfs.f2fs(8),
34 and xfs(5) for more file system-specific details.
35
37 -R Recursively change attributes of directories and their contents.
38
39 -V Be verbose with chattr's output and print the program version.
40
41 -f Suppress most error messages.
42
43 -v version
44 Set the file's version/generation number.
45
46 -p project
47 Set the file's project number.
48
50 a A file with the 'a' attribute set can only be opened in append
51 mode for writing. Only the superuser or a process possessing
52 the CAP_LINUX_IMMUTABLE capability can set or clear this attri‐
53 bute.
54
55 A When a file with the 'A' attribute set is accessed, its atime
56 record is not modified. This avoids a certain amount of disk
57 I/O for laptop systems.
58
59 c A file with the 'c' attribute set is automatically compressed on
60 the disk by the kernel. A read from this file returns uncom‐
61 pressed data. A write to this file compresses data before stor‐
62 ing them on the disk. Note: please make sure to read the bugs
63 and limitations section at the end of this document. (Note: For
64 btrfs, If the 'c' flag is set, then the 'C' flag cannot be set.
65 Also conflicts with btrfs mount option 'nodatasum')
66
67 C A file with the 'C' attribute set will not be subject to copy-
68 on-write updates. This flag is only supported on file systems
69 which perform copy-on-write. (Note: For btrfs, the 'C' flag
70 should be set on new or empty files. If it is set on a file
71 which already has data blocks, it is undefined when the blocks
72 assigned to the file will be fully stable. If the 'C' flag is
73 set on a directory, it will have no effect on the directory, but
74 new files created in that directory will have the No_COW attri‐
75 bute set. If the 'C' flag is set, then the 'c' flag cannot be
76 set.)
77
78 d A file with the 'd' attribute set is not a candidate for backup
79 when the dump(8) program is run.
80
81 D When a directory with the 'D' attribute set is modified, the
82 changes are written synchronously to the disk; this is equiva‐
83 lent to the 'dirsync' mount option applied to a subset of the
84 files.
85
86 e The 'e' attribute indicates that the file is using extents for
87 mapping the blocks on disk. It may not be removed using
88 chattr(1).
89
90 E A file, directory, or symlink with the 'E' attribute set is en‐
91 crypted by the file system. This attribute may not be set or
92 cleared using chattr(1), although it can be displayed by
93 lsattr(1).
94
95 F A directory with the 'F' attribute set indicates that all the
96 path lookups inside that directory are made in a case-insensi‐
97 tive fashion. This attribute can only be changed in empty di‐
98 rectories on file systems with the casefold feature enabled.
99
100 i A file with the 'i' attribute cannot be modified: it cannot be
101 deleted or renamed, no link can be created to this file, most of
102 the file's metadata can not be modified, and the file can not be
103 opened in write mode. Only the superuser or a process possess‐
104 ing the CAP_LINUX_IMMUTABLE capability can set or clear this at‐
105 tribute.
106
107 I The 'I' attribute is used by the htree code to indicate that a
108 directory is being indexed using hashed trees. It may not be
109 set or cleared using chattr(1), although it can be displayed by
110 lsattr(1).
111
112 j A file with the 'j' attribute has all of its data written to the
113 ext3 or ext4 journal before being written to the file itself, if
114 the file system is mounted with the "data=ordered" or
115 "data=writeback" options and the file system has a journal.
116 When the file system is mounted with the "data=journal" option
117 all file data is already journalled and this attribute has no
118 effect. Only the superuser or a process possessing the
119 CAP_SYS_RESOURCE capability can set or clear this attribute.
120
121 m A file with the 'm' attribute is excluded from compression on
122 file systems that support per-file compression.
123
124 N A file with the 'N' attribute set indicates that the file has
125 data stored inline, within the inode itself. It may not be set
126 or cleared using chattr(1), although it can be displayed by
127 lsattr(1).
128
129 P A directory with the 'P' attribute set will enforce a hierarchi‐
130 cal structure for project id's. This means that files and di‐
131 rectories created in the directory will inherit the project id
132 of the directory, rename operations are constrained so when a
133 file or directory is moved into another directory, that the
134 project ids must match. In addition, a hard link to file can
135 only be created when the project id for the file and the desti‐
136 nation directory match.
137
138 s When a file with the 's' attribute set is deleted, its blocks
139 are zeroed and written back to the disk. Note: please make sure
140 to read the bugs and limitations section at the end of this doc‐
141 ument.
142
143 S When a file with the 'S' attribute set is modified, the changes
144 are written synchronously to the disk; this is equivalent to the
145 'sync' mount option applied to a subset of the files.
146
147 t A file with the 't' attribute will not have a partial block
148 fragment at the end of the file merged with other files (for
149 those file systems which support tail-merging). This is neces‐
150 sary for applications such as LILO which read the file system
151 directly, and which don't understand tail-merged files. Note:
152 As of this writing, the ext2, ext3, and ext4 file systems do not
153 support tail-merging.
154
155 T A directory with the 'T' attribute will be deemed to be the top
156 of directory hierarchies for the purposes of the Orlov block al‐
157 locator. This is a hint to the block allocator used by ext3 and
158 ext4 that the subdirectories under this directory are not re‐
159 lated, and thus should be spread apart for allocation purposes.
160 For example it is a very good idea to set the 'T' attribute on
161 the /home directory, so that /home/john and /home/mary are
162 placed into separate block groups. For directories where this
163 attribute is not set, the Orlov block allocator will try to
164 group subdirectories closer together where possible.
165
166 u When a file with the 'u' attribute set is deleted, its contents
167 are saved. This allows the user to ask for its undeletion.
168 Note: please make sure to read the bugs and limitations section
169 at the end of this document.
170
171 x A file with the 'x' requests the use of direct access (dax)
172 mode, if the kernel supports DAX. This can be overridden by the
173 'dax=never' mount option. For more information see the kernel
174 documentation for dax: <https://www.kernel.org/doc/html/lat‐
175 est/filesystems/dax.html>.
176
177 If the attribute is set on an existing directory, it will be in‐
178 herited by all files and subdirectories that are subsequently
179 created in the directory. If an existing directory has con‐
180 tained some files and subdirectories, modifying the attribute on
181 the parent directory doesn't change the attributes on these
182 files and subdirectories.
183
184 V A file with the 'V' attribute set has fs-verity enabled. It
185 cannot be written to, and the file system will automatically
186 verify all data read from it against a cryptographic hash that
187 covers the entire file's contents, e.g. via a Merkle tree. This
188 makes it possible to efficiently authenticate the file. This
189 attribute may not be set or cleared using chattr(1), although it
190 can be displayed by lsattr(1).
191
193 chattr was written by Remy Card <Remy.Card@linux.org>. It is currently
194 being maintained by Theodore Ts'o <tytso@alum.mit.edu>.
195
197 The 'c', 's', and 'u' attributes are not honored by the ext2, ext3,
198 and ext4 file systems as implemented in the current mainline Linux ker‐
199 nels. Setting 'a' and 'i' attributes will not affect the ability to
200 write to already existing file descriptors.
201
202 The 'j' option is only useful for ext3 and ext4 file systems.
203
204 The 'D' option is only useful on Linux kernel 2.5.19 and later.
205
207 chattr is part of the e2fsprogs package and is available from
208 http://e2fsprogs.sourceforge.net.
209
211 lsattr(1), btrfs(5), ext4(5), mkfs.f2fs(8), xfs(5).
212
213
214
215E2fsprogs version 1.47.0 February 2023 CHATTR(1)