334 lines
10 KiB
HTML
334 lines
10 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of CHATTR</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>CHATTR</H1>
|
|
Section: User Commands (1)<BR>Updated: January 2020<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
chattr - change file attributes on a Linux file system
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>chattr</B>
|
|
|
|
[
|
|
<B>-RVf</B>
|
|
|
|
]
|
|
[
|
|
<B>-v</B>
|
|
|
|
<I>version</I>
|
|
|
|
]
|
|
[
|
|
<B>-p</B>
|
|
|
|
<I>project</I>
|
|
|
|
]
|
|
[
|
|
<I>mode</I>
|
|
|
|
]
|
|
<I>files...</I>
|
|
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
<B>chattr</B>
|
|
|
|
changes the file attributes on a Linux file system.
|
|
<P>
|
|
|
|
The format of a symbolic mode is +-=[aAcCdDeFijPsStTu].
|
|
<P>
|
|
|
|
The operator '+' causes the selected attributes to be added to the
|
|
existing attributes of the files; '-' causes them to be removed; and '='
|
|
causes them to be the only attributes that the files have.
|
|
<P>
|
|
|
|
The letters 'aAcCdDeFijPsStTu' select the new attributes for the files:
|
|
append only (a),
|
|
no atime updates (A),
|
|
compressed (c),
|
|
no copy on write (C),
|
|
no dump (d),
|
|
synchronous directory updates (D),
|
|
extent format (e),
|
|
case-insensitive directory lookups (F),
|
|
immutable (i),
|
|
data journalling (j),
|
|
project hierarchy (P),
|
|
secure deletion (s),
|
|
synchronous updates (S),
|
|
no tail-merging (t),
|
|
top of directory hierarchy (T),
|
|
and undeletable (u).
|
|
<P>
|
|
|
|
The following attributes are read-only, and may be listed by
|
|
<B><A HREF="/cgi-bin/man/man2html?1+lsattr">lsattr</A></B>(1)
|
|
|
|
but not modified by chattr:
|
|
encrypted (E),
|
|
indexed directory (I),
|
|
inline data (N),
|
|
and verity (V).
|
|
<P>
|
|
|
|
Not all flags are supported or utilized by all filesystems; refer to
|
|
filesystem-specific man pages such as
|
|
<B><A HREF="/cgi-bin/man/man2html?5+btrfs">btrfs</A></B>(5),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?5+ext4">ext4</A></B>(5),
|
|
|
|
and
|
|
<B><A HREF="/cgi-bin/man/man2html?5+xfs">xfs</A></B>(5)
|
|
|
|
for more filesystem-specific details.
|
|
<A NAME="lbAE"> </A>
|
|
<H2>OPTIONS</H2>
|
|
|
|
<DL COMPACT>
|
|
<DT id="1"><B>-R</B>
|
|
|
|
<DD>
|
|
Recursively change attributes of directories and their contents.
|
|
<DT id="2"><B>-V</B>
|
|
|
|
<DD>
|
|
Be verbose with chattr's output and print the program version.
|
|
<DT id="3"><B>-f</B>
|
|
|
|
<DD>
|
|
Suppress most error messages.
|
|
<DT id="4"><B>-v</B><I> version</I>
|
|
|
|
<DD>
|
|
Set the file's version/generation number.
|
|
<DT id="5"><B>-p</B><I> project</I>
|
|
|
|
<DD>
|
|
Set the file's project number.
|
|
</DL>
|
|
<A NAME="lbAF"> </A>
|
|
<H2>ATTRIBUTES</H2>
|
|
|
|
A file with the 'a' attribute set can only be opened in append mode for
|
|
writing. Only the superuser or a process possessing the
|
|
CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
|
|
<P>
|
|
|
|
When a file with the 'A' attribute set is accessed, its atime record is
|
|
not modified. This avoids a certain amount of disk I/O for laptop
|
|
systems.
|
|
<P>
|
|
|
|
A file with the 'c' attribute set is automatically compressed on the disk
|
|
by the kernel. A read from this file returns uncompressed data. A write to
|
|
this file compresses data before storing them on the disk. Note: please
|
|
make sure to read the bugs and limitations section at the end of this
|
|
document.
|
|
<P>
|
|
|
|
A file with the 'C' attribute set will not be subject to copy-on-write
|
|
updates. This flag is only supported on file systems which perform
|
|
copy-on-write. (Note: For btrfs, the 'C' flag should be
|
|
set on new or empty files. If it is set on a file which already has
|
|
data blocks, it is undefined when the blocks assigned to the file will
|
|
be fully stable. If the 'C' flag is set on a directory, it will have no
|
|
effect on the directory, but new files created in that directory will
|
|
have the No_COW attribute set.)
|
|
<P>
|
|
|
|
A file with the 'd' attribute set is not a candidate for backup when the
|
|
<B><A HREF="/cgi-bin/man/man2html?8+dump">dump</A></B>(8)
|
|
|
|
program is run.
|
|
<P>
|
|
|
|
When a directory with the 'D' attribute set is modified,
|
|
the changes are written synchronously to the disk; this is equivalent to
|
|
the 'dirsync' mount option applied to a subset of the files.
|
|
<P>
|
|
|
|
The 'e' attribute indicates that the file is using extents for mapping
|
|
the blocks on disk. It may not be removed using
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chattr">chattr</A></B>(1).
|
|
|
|
<P>
|
|
|
|
A file, directory, or symlink with the 'E' attribute set is encrypted by the
|
|
filesystem. This attribute may not be set or cleared using
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chattr">chattr</A></B>(1),
|
|
|
|
although it can be displayed by
|
|
<B><A HREF="/cgi-bin/man/man2html?1+lsattr">lsattr</A></B>(1).
|
|
|
|
<P>
|
|
|
|
A directory with the 'F' attribute set indicates that all the path
|
|
lookups inside that directory are made in a case-insensitive fashion.
|
|
This attribute can only be changed in empty directories on file systems
|
|
with the casefold feature enabled.
|
|
<P>
|
|
|
|
A file with the 'i' attribute cannot be modified: it cannot be deleted or
|
|
renamed, no link can be created to this file, most of the file's
|
|
metadata can not be modified, and the file can not be opened in write mode.
|
|
Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE
|
|
capability can set or clear this attribute.
|
|
<P>
|
|
|
|
The 'I' attribute is used by the htree code to indicate that a directory
|
|
is being indexed using hashed trees. It may not be set or cleared using
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chattr">chattr</A></B>(1),
|
|
|
|
although it can be displayed by
|
|
<B><A HREF="/cgi-bin/man/man2html?1+lsattr">lsattr</A></B>(1).
|
|
|
|
<P>
|
|
|
|
A file with the 'j' attribute has all of its data written to the ext3 or
|
|
ext4 journal before being written to the file itself, if the file system
|
|
is mounted with the "data=ordered" or "data=writeback" options and the
|
|
file system has a journal. When the filesystem is mounted with the
|
|
"data=journal" option all file data is already journalled and this
|
|
attribute has no effect. Only the superuser or a process possessing the
|
|
CAP_SYS_RESOURCE capability can set or clear this attribute.
|
|
<P>
|
|
|
|
A file with the 'N' attribute set indicates that the file has data
|
|
stored inline, within the inode itself. It may not be set or cleared
|
|
using
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chattr">chattr</A></B>(1),
|
|
|
|
although it can be displayed by
|
|
<B><A HREF="/cgi-bin/man/man2html?1+lsattr">lsattr</A></B>(1).
|
|
|
|
<P>
|
|
|
|
A directory with the 'P' attribute set will enforce a hierarchical
|
|
structure for project id's. This means that files and directory created
|
|
in the directory will inherit the project id of the directory, rename
|
|
operations are constrained so when a file or directory is moved into
|
|
another directory, that the project id's much match. In addition, a
|
|
hard link to file can only be created when the project id for the file
|
|
and the destination directory match.
|
|
<P>
|
|
|
|
When a file with the 's' attribute set is deleted, its blocks are zeroed
|
|
and written back to the disk. Note: please make sure to read the bugs
|
|
and limitations section at the end of this document.
|
|
<P>
|
|
|
|
When a file with the 'S' attribute set is modified,
|
|
the changes are written synchronously to the disk; this is equivalent to
|
|
the 'sync' mount option applied to a subset of the files.
|
|
<P>
|
|
|
|
A file with the 't' attribute will not have a partial block fragment at
|
|
the end of the file merged with other files (for those filesystems which
|
|
support tail-merging). This is necessary for applications such as LILO
|
|
which read the filesystem directly, and which don't understand tail-merged
|
|
files. Note: As of this writing, the ext2, ext3, and ext4 filesystems do
|
|
not support tail-merging.
|
|
<P>
|
|
|
|
A directory with the 'T' attribute will be deemed to be the top of
|
|
directory hierarchies for the purposes of the Orlov block allocator.
|
|
This is a hint to the block allocator used by ext3 and ext4 that the
|
|
subdirectories under this directory are not related, and thus should be
|
|
spread apart for allocation purposes. For example it is a very good
|
|
idea to set the 'T' attribute on the /home directory, so that /home/john
|
|
and /home/mary are placed into separate block groups. For directories
|
|
where this attribute is not set, the Orlov block allocator will try to
|
|
group subdirectories closer together where possible.
|
|
<P>
|
|
|
|
When a file with the 'u' attribute set is deleted, its contents are
|
|
saved. This allows the user to ask for its undeletion. Note: please
|
|
make sure to read the bugs and limitations section at the end of this
|
|
document.
|
|
<P>
|
|
|
|
A file with the 'V' attribute set has fs-verity enabled. It cannot be
|
|
written to, and the filesystem will automatically verify all data read
|
|
from it against a cryptographic hash that covers the entire file's
|
|
contents, e.g. via a Merkle tree. This makes it possible to efficiently
|
|
authenticate the file. This attribute may not be set or cleared using
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chattr">chattr</A></B>(1),
|
|
|
|
although it can be displayed by
|
|
<B><A HREF="/cgi-bin/man/man2html?1+lsattr">lsattr</A></B>(1).
|
|
|
|
<P>
|
|
|
|
<A NAME="lbAG"> </A>
|
|
<H2>AUTHOR</H2>
|
|
|
|
<B>chattr</B>
|
|
|
|
was written by Remy Card <<A HREF="mailto:Remy.Card@linux.org">Remy.Card@linux.org</A>>. It is currently being
|
|
maintained by Theodore Ts'o <<A HREF="mailto:tytso@alum.mit.edu">tytso@alum.mit.edu</A>>.
|
|
<A NAME="lbAH"> </A>
|
|
<H2>BUGS AND LIMITATIONS</H2>
|
|
|
|
The 'c', 's', and 'u' attributes are not honored
|
|
by the ext2, ext3, and ext4 filesystems as implemented in the current
|
|
mainline Linux kernels.
|
|
Setting 'a' and 'i' attributes will not affect the ability to write
|
|
to already existing file descriptors.
|
|
<P>
|
|
|
|
The 'j' option is only useful for ext3 and ext4 file systems.
|
|
<P>
|
|
|
|
The 'D' option is only useful on Linux kernel 2.5.19 and later.
|
|
<A NAME="lbAI"> </A>
|
|
<H2>AVAILABILITY</H2>
|
|
|
|
<B>chattr</B>
|
|
|
|
is part of the e2fsprogs package and is available from
|
|
<A HREF="http://e2fsprogs.sourceforge.net.">http://e2fsprogs.sourceforge.net.</A>
|
|
<A NAME="lbAJ"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+lsattr">lsattr</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?5+btrfs">btrfs</A></B>(5),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?5+ext4">ext4</A></B>(5),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?5+xfs">xfs</A></B>(5).
|
|
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="6"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="7"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="8"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DT id="9"><A HREF="#lbAE">OPTIONS</A><DD>
|
|
<DT id="10"><A HREF="#lbAF">ATTRIBUTES</A><DD>
|
|
<DT id="11"><A HREF="#lbAG">AUTHOR</A><DD>
|
|
<DT id="12"><A HREF="#lbAH">BUGS AND LIMITATIONS</A><DD>
|
|
<DT id="13"><A HREF="#lbAI">AVAILABILITY</A><DD>
|
|
<DT id="14"><A HREF="#lbAJ">SEE ALSO</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:05:08 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|