Здравствуй, дорогой читатель. Сегодня в статье рассмотрим пример на запрет удаления файлов и директорий всем пользователям включаю root. Проделывать данные манипуляции я буду на Ubuntu Server 18.04. И так поехали.
chattr (Change Attribute) – это утилита командной строки в linux, которая используется для установки/снятия специальных атрибутов файлов для предотвращения случайной модификации и удаления файлов или директорий, даже если вы авторизованы как root.
Если назначить атрибут immutable на директорию, то данную директорию нельзя будет удалить, а так же нельзя будет изменить структуру внутри нее. Тем самым получается, что если нам нужно защитить нашу директорию например share и структуру внутри нее, нам необходимо выполнить простую команду:
sudo chattr +i /home/user/share
Если же нужно защитить только одну директорию внутри другой например /share/myfiles, можно поступить следующим образом:
touch /home/user/share/myfiles/.keep
chattr +i /home/user/share/myfiles/.keep
Для проверки установленных атрибутов воспользуемся командой lsattr.
lsattr
Как снять атрибут с файла.
Для снятия атрибута необходимо использовать флаг -i.
sudo chattr -i /home/user/share
Для всех файлов и вложенных директорий воспользуемся атрибутом -R
sudo chattr -i -R /home/user/share
Добавление данных в файл без изменения уже существующих данных.
Например вы хотите добавить в файл какие либо данные, но защитить от изменения уже существующие. Для этого воспользуемся атрибутом +a
chattr +a /home/user/myfile.txt
Теперь файл можно открыть на запись только в режиме добавления данных. Если попробовав заменить содержимое файла myfile.txt, вы увидите сообщение об ошибке ‘Operation not permitted‘