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