Sometimes you may need to make a specific file or directory undeletable in Linux. You can easily do this using chattr command that modifies the attributes of the file/directory making it undeletable. In this article, we will learn how to make file and directory undeletable in Linux.
How to Make File and Directory Undeletable in Linux
Here is a simple example to make /home/ubuntu/data.txt file undeletable or immutable. In this case, the file cannot be modified in any way. It cannot even be renamed or linked to.
You need superuser privileges to set or remove this attribute.
$ sudo chattr +i /home/ubuntu/data.txt OR $ sudo chattr +i -V /home/ubuntu/data.txt
You can view the attributes of a file using lsattr command.
$ lsattr /home/ubuntu/data.txt
Now if you try to remove the file, you will get a message that it is not permitted.
$ rm /home/ubuntu/data.txt rm: cannot remove '/home/ubuntu/data.txt': Operation not permitted $ sudo rm /home/ubuntu/data.txt rm: cannot remove '/home/ubuntu/data.txt': Operation not permitted
If you want to make your file deletable again, use -i option in chattr.
$ chattr -i /home/ubuntu/data.txt
How to Make Directory Undeletable
To make directory undeletable, use -R option with chattr command. Here is an example to make /home/ubuntu folder undeletable.
$ sudo chattr +i -RV /home/ubuntu
To make the directory deletable again, use -i option.
$ sudo chattr -i -RV /home/ubuntu
In this article, we have learnt how to make file and directory undeletable in Linux.
Also read:
How to Disable Auto Logout in Linux
How to Make File Unreadable in Linux
How to Measure Elapsed Time in Python
How to Create ISO Image from CD in Linux
How to Export Pandas Dataframe to Multiple Excel Sheets
Related posts:
Sreeram has more than 10 years of experience in web development, Python, Linux, SQL and database programming.