By default, Chattr comes pre-installed in many Linux operating systems. So let us not bother about installation.
The default syntax of chattr command is:
chattr has the following operators:
- The operator '
+
' causes the selected attributes to be added to the existing attributes of the files. - The operator '
-
' causes them to be removed. - The operator '
=
' causes them to be the only attributes that the files have.
Chattr has different attributes namely - aAcCdDeijsStTu. Each letter applies a particular attributes to a file as listed below.
- a - append only,
- A - no atime updates,
- c - compressed,
- C - no copy on write,
- d - no dump,
- D - synchronous directory updates,
- e - extent format,
- i - immutable,
- j - data journalling,
- P - project hierarchy,
- s - secure deletion,
- S - synchronous updates,
- t - no tail-merging,
- T - top of directory hierarchy,
- u - undeletable.
In this tutorial, we are going to discuss the usage of two attributes, namely a, i which are used to prevent the deletion of files and folders.
Prevent files from accidental deletion in Linux
Let me create a file called file.txt
in my current directory.
Or,
Now, I am going to apply "i
" attribute which makes the file immutable. It means - you can't delete, modify the file, even if you're the file owner and the root user.
You can check the file attributes using command:
Sample output:
Now, try to remove the file either as a normal user or with sudo privileges.
Sample output:
Let me try with sudo command:
Sample output:
Let us try to append some contents in the text file.
Sample output:
Even if you try remove the file from your file manager in GUI mode, you can't delete it.
As you noticed in the above outputs, We can't delete or modify the file even as root user.
To revoke attributes, just use "-i
" switch as shown below.
Now, the immutable attribute has been removed. You can now modify or delete the file as you wish.
Similarly, you can restrict the directories from accidental deletion or modification as described in the next section.
Prevent folders from accidental deletion and modification in Linux
Create a directory called dir1
and a file called file.txt
inside this directory.
Now, make this directory and its contents (file.txt) immutable using command:
Where,
-R
- will make the dir1 and its contents immutable recursively.+i
- makes the directory immutable.
Now, try to delete the directory either as normal user or using sudo user.
You will get the following output:
Try to append some contents in the file using "echo
" command. Did you make it? Of course, you couldn't!
To revoke the attributes back, run:
Now, you can delete or modify the contents of this directory as usual.
Prevent files and folders from accidental deletion, but allow append operation in Linux
We know now how to prevent files and folders from accidental deletion and modification. Next, we are going to prevent files and folders from deletion, but allow the file for writing in append mode only. That means you can't edit, modify the existing data in the file, rename the file, and delete the file. You can only open the file for writing in append mode.
To set append mode attribution to a file/directory, we do the following:
For files:
For directories:
A file/folder with the 'a' attribute set can only be open in append mode for writing.
Add some contents to the file(s) to check whether it works or not.
Check the file contents using cat command:
Sample output:
As you can see, we can be able able to append the contents. It means we can modify the files and folders.
Let us try to delete the file or folder now.
Output:
Let us try to delete the folder:
Or try with sudo:
Sample output:
To remove the attributes, run the following commands:
For files:
For directories:
Now, you can delete or modify the files and folders as usual.
For more details, refer the man pages.
No hay comentarios:
Publicar un comentario