Наши партнеры

UnixForum





Библиотека сайта 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 вы можете узнать из следующих статей на нашем сайте: