В 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
Используя флаг -R, вы можете рекурсивно изменять атрибуты каталогов и их содержимого.
sudo chattr +i -RV /backups/
Чтобы снова изменить файл, используйте флаг -i, чтобы удалить вышеуказанный атрибут, как показано ниже.
sudo chattr -i /backups/ passwd