1CHATTR(1)                   General Commands Manual                  CHATTR(1)
2
3
4

NAME

6       chattr - change file attributes on a Linux file system
7

SYNOPSIS

9       chattr [ -RVf ] [ -v version ] [ -p project ] [ mode ] files...
10

DESCRIPTION

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

OPTIONS

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

ATTRIBUTES

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

AUTHOR

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

BUGS AND LIMITATIONS

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

AVAILABILITY

203       chattr  is  part  of  the  e2fsprogs  package  and  is  available  from
204       http://e2fsprogs.sourceforge.net.
205

SEE ALSO

207       lsattr(1), btrfs(5), ext4(5), xfs(5).
208
209
210
211E2fsprogs version 1.46.3           July 2021                         CHATTR(1)
Impressum