Changing file attributes with chattr
Table of Contents
chattr
is a not-well known command, but it can do very useful things with files attributes. In this post I will show you some examples.
Installation
chattr
is part of the e2fsprogs package, which is usually already installed on most Linux systems.
Usage
The basic syntax of chattr
is:
chattr [options] [mode] <files>
To list the attributes of a file, use lsattr
:
lsattr <files>
-R
to do recursive listing.
Options
The most relevant option is -R
to recursively change attributes of directories and their contents.
Mode (attributes)
The format of a mode consist of:
+
,-
or=
: add attributes (+
), remove them (-
) or set only the specified ones (=
).- One or more of the following letters:
aAcCdDeFijmPsStTux
. Checkchattr
man page for a full explanation of all available attributes.
For example:
# Add an attribute
chattr +i some_file
# Remove an attribute
chattr -i some_file
Now, I am going to explain some of the available attributes:
a
: the file can only be opened in append mode. Only a superuser can set or clear this attribute.
$ echo "Hola" > test1
$ sudo chattr +a test1
$ echo "Adios" > test1
bash: test1: Operation not permitted
$ echo "Adios" >> test1
$ cat test1
Hola
Adios
A
: don’t change access time when the file is accessed.i
: the file cannot be modified, deleted or renamed, and no link can be created using this file. The file cannot be opened in write mode. Only a superuser can set or clear this attribute.
$ sudo chattr +i test1
$ echo "Hasta luego" >> test1
bash: test1: Operation not permitted
Some attributes such as c
(compress), s
(overwrite with zeros when deleted) and u
(save contents when deleted) don’t work on ext2/3/4 filesystems.
If you have any suggestion, feel free to contact me via social media or email.
Latest tutorials and articles:
Featured content: