Команда chattr: управляем атрибутами файлов
Синтаксис команды chattr [ -RV ] [ -v версия ] [ атрибуты ] файл/директория
-R – рекурсивное изменение атрибутов каталогов и их содержимого, игнорирование символических ссылок во время рекурсии;
-v version – вывод версии и номера сборки файловой системы;
-V – вывод версии программы;
-d – показ данных по всем атрибутам для всех каталогах;
-а – вывод атрибутов для всех файлов.
Атрибуты
а – разрешается добавлять информацию в файл или каталог, но изменять или удалять ее нельзя;
с – автоматическое сжатие файла при записи на диск;
D – синхронное обновление каталогов;
d – если запущена утилита dump, не выполняется бэкап для файла;
i – файлу присваивается статус неизменяемого;
j – все данные файла перед записью сохраняются в системный журнал;
s – обнуление блоков файла;
S – синхронное обновление;
u – содержимое файла сохраняется даже при его удалении.
Примеры
Присвоение файлу статус неизменяемого
chattr +i /каталог/файл
Теперь внести правки, перезаписать или удалить этот файл не может даже суперпользователь. Любые манипуляции с правами файла можно делать только после отключения атрибута.
Чтобы посмотреть, установился ли наш атрибут, используем команду lsattr
lsattr /каталог/файл
Чтобы удалить этот атрибут
chattr –i /каталог/файл
Добавление данных в файл без изменения содержимого
Если мы хотим разрешить каждому добавлять информацию в файл без изменения уже введенных данных, используем ключ a.
chattr +a file2.txt
Проверяем командой
lsattr file2.txt
chattr
Теперь попробуем внести изменения в содержимое файла file2.txt
Добавим содержимое файла file1.txt в файл file2.txt
echo "replace contain on file1.txt" > file2.txt
Получаем сообщение о том, что это действие запрещено.
-bash: file2.txt: Operation not permitted
Обеспечение безопасности каталогов
Чтобы присвоить каталогу статус неизменяемого, мы используем опцию –R с атрибутом +i и указываем имя каталога.
chattr –R +i каталог
Теперь попробуем удалить каталог вместе с содержимым
rm –rf каталог
Получаем сообщение
rm: cannot remove ‘каталог’: Operation not permitted
Отменяем запрет при помощи атрибута -i
chattr -R -i каталог