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), and xfs(5)
34 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 The 'x' attribute can be set on a directory or file. If the at‐
172 tribute is set on an existing directory, it will be inherited by
173 all files and subdirectories that are subsequently created in
174 the directory. If an existing directory has contained some
175 files and subdirectories, modifying the attribute on the parent
176 directory doesn't change the attributes on these files and sub‐
177 directories.
178
179 V A file with the 'V' attribute set has fs-verity enabled. It
180 cannot be written to, and the file system will automatically
181 verify all data read from it against a cryptographic hash that
182 covers the entire file's contents, e.g. via a Merkle tree. This
183 makes it possible to efficiently authenticate the file. This
184 attribute may not be set or cleared using chattr(1), although it
185 can be displayed by lsattr(1).
186
188 chattr was written by Remy Card <Remy.Card@linux.org>. It is currently
189 being maintained by Theodore Ts'o <tytso@alum.mit.edu>.
190
192 The 'c', 's', and 'u' attributes are not honored by the ext2, ext3,
193 and ext4 file systems as implemented in the current mainline Linux ker‐
194 nels. Setting 'a' and 'i' attributes will not affect the ability to
195 write to already existing file descriptors.
196
197 The 'j' option is only useful for ext3 and ext4 file systems.
198
199 The 'D' option is only useful on Linux kernel 2.5.19 and later.
200
202 chattr is part of the e2fsprogs package and is available from
203 http://e2fsprogs.sourceforge.net.
204
206 lsattr(1), btrfs(5), ext4(5), xfs(5).
207
208
209
210E2fsprogs version 1.46.5 December 2021 CHATTR(1)