Библиотека сайта rus-linux.net
Как запретить удаление файла в Linux, даже для Root
Оригинал: How to Make File and Directory Undeletable, Even By Root in Linux
Автор: Aaron Kili
Дата публикации: 10 октября 2017 года
Перевод: А. Кривошей
Дата перевода: июль 2018 г.
В Unix-подобных операционных системах, включая Linux, root - это имя учетной записи или пользователя, который по умолчанию может изменять все каталоги и файлы в системе. В этой статье мы покажем, как сделать каталоги или файлы в Linux недоступными для удаления даже пользователем root.
Чтобы сделать файл неуязвимым для любого пользователя системы, включая root, вам необходимо сделать его неизменяемым с помощью команды chattr. Эта команда изменяет атрибуты файлов в файловой системе Linux.
Приведенная ниже команда делает файл /backups/passwd файл неизменяемым. Это означает, что файл нельзя изменить любым образом: его нельзя удалить или переименовать. Вы даже не можете создать ссылку на него, и никакие данные также не могут быть записаны в файл.
Обратите внимание, что вам нужны привилегии суперпользователя, чтобы установить или удалить этот атрибут:
$ sudo chattr +i /backups/passwd
или
$ sudo chattr +i -V /backups/passwd
Для просмотра атрибутов файла используется команда lsattr, как показано ниже:
$ lsattr /backups/passwd
Теперь попробуйте удалить неизменяемый файл, как от имени обычного пользователя, так и как root.
$ rm /backups/passwd $ sudo rm /backups/passwd
Как сделать каталог неизменяемым в Linux рекурсивно
Используя флаг -R, вы можете рекурсивно изменять атрибуты каталогов и их содержимого.
$ sudo chattr +i -RV /backups/
Чтобы снова изменить файл, используйте флаг -i, чтобы удалить вышеуказанный атрибут, как показано ниже.
$ sudo chattr -i /backups/ passwd
Подробнее о команде chattr вы можете узнать из следующих статей на нашем сайте:
- Как предотвратить модификацию файлов в Linux с помощью команды chattr
- Как защитить файл от перезаписи в Linux