После того как в ядре включена поддержка расширенных атрибутов, можно начать работать с ними. Для изменения атрибутов предназначена команда chattr, а для их просмотра — команда lsattr, например:
lsattr /bin/login i /bin/login
В данном примере для программы /bin/login установлен бит i (режим неизменяемости). Это означает, что нельзя изменить данный файл, создать ссылку на него, переименовать или удалить. Снять атрибут i может только суперпользователь. Учтите, что не все атрибуты поддерживаются в той или иной версии Linux. В Red Hat 7.2 (ядро версии 2.4.x) не поддерживаются атрибуты А, с и и. С точки зрения безопасности наиболее важны биты s, i и а.
Таблица 4.6. Расширенные атрибуты файлов
Атрибут Описание
s Если этот атрибут установлен, то при удалении файла все его блоки очищаются
и записываются обратно на диск и Заставляет сохранять содержимое файла при удалении, что упрощает его последу
ющее восстановление с Файл, для которого этот атрибут установлен, сжимается ядром
S Если файл, для которого этот атрибут установлен, модифицируется, все изменения
синхронно записываются на диск. Обычно запись осуществляется асинхронно i Если этот атрибут установлен, нельзя модифицировать файл, создавать ссылки на
него, удалять или переименовывать. Поменять данную установку может лишь суперпользователь
а Файл, для которого этот атрибут установлен, может модифицироваться только в ре
жиме добавления. Поменять данную установку может лишь суперпользователь d Запрещает утилите dump создавать резервные копии файла
А Этот атрибут запрещает обновление информации о времени последнего доступа
к файлу
Рассмотрим, как пользоваться командой chattr для установки расширенных атрибутов. Предположим, имеется группа файлов, содержащих чрезвычайно конфиденциальную информацию. И вот поступает приказ удалить эти файлы. Обычно, когда файл удаляется, очищаются лишь указатели на файл, хранящиеся в файловой системе. Сами данные остаются на диске и могут быть повторно прочитаны, случайно или намеренно. Чтобы избежать этого, установите для файлов атрибут s (безопасное удаление). В этом случае все блоки данных будут заполнены нулями и записаны на диск . Для примера назначим атрибут s файлу really_private:
chattr V +s really_private chattr 1.26 (3Feb2002)
Flags of really_private set as s
Флаг V команды chattr включает режим расширенного вывода, благодаря чему не приходится выполнять команду lsattr для проверки изменений. Обратите внимание на то, что для задания атрибута s не нужно быть суперпользователем. Это ограничение касается только атрибутов i (режим неизменяемости) и а (режим добавления).