Команда управляет атрибутами файлов, формат которых задается в следующем символьном виде +-=[ASacDdIijsTtu].
Оператор `+' добавляет выбранные атрибуты к уже существующим атрибутам файлов; оператор `-' удаляет их; оператор `=' устанавливает только атрибуты, которые файлы имеют.
Новые атрибуты для файла выбираются из последовательности `acdijsuADST': (a) - "только добавление записей", (c) - "сжатый", (d) - "недампируемый", (i) - "недосягаемый", (j) - "с журналированием данных" , (s) - "с гарантированным удалением", (t) - "без склеивания хвостов файлов", (u) - "не удаляемый", (A) - "не обновляемый по времени доступа", (D) - "с синхронизацией изменений директории", (S) - "синхронно обновляемый", (T) - "на вершине иерархии директорий".
Следует учитывать, что действие атрибутов команды chattr перекрывает полномочия пользователя, направленные на модификацию или удаление файлов. Это свойство часто используют в качестве дополнительной меры по усилению безопасности системы. Например, установка атрибута i ("недосягаемый") для файла /etc/lilo.conf при помощи:
Для файла с установленным атрибутом `a' разрешено лишь добавлять записи. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE, может установить или очистить этот атрибут.
Информация файла с установленным атрибутом `c' автоматически упаковывается (сжимается) на диске ядром операционной системы. Операция чтения информации из этого файла возвращает несжатые данные. Запись информации в такой файл сопровождается предварительной её упаковкой и, наконец, последующим сохранением на диск.
Когда модифицируется директория с установленным атрибутом `D', внесенные изменения синхронно записываются на диск; это эквивалентно применению опции монтирования `dirsync' к подмножеству файлов.
Для файла с установленным атрибутом `d' не выполняется резервное копирование, когда запущена программа dump(8).
Атрибут 'E' используется экспериментальными заплатками сжатия для определения того, что сжатый файл имеет ошибку сжатия. Это состояние может быть установлено или сброшено с помощью chattr(1), а отображено lsattr(1).
Атрибут 'I' используется кодом для хеш-деревьев (htree), чтобы указать, что директория находится позади индексированных хешированных деревьев. Это состояние может быть установлено или сброшено с помощью chattr(1), а отображено lsattr(1).
Файл с установленным атрибутом `i' становится полностью не модифицируемым (недосягаемым): он не может быть удален или переименован, никакие ссылки не могут быть созданы на этот файл и никакие данные не могут быть записаны в него. Только суперпользователь или процесс, обладающий возможностью CAP_LINUX_IMMUTABLE может установить или очистить такой атрибут
Для файла с установленным атрибутом `j' все его данные прежде, чем быть записанными непосредственно в файл, сохраняются в журнал ext3. Правда, это происходит в том случае, если файловая система смонтирована с опциями "data=ordered" или "data=writeback". Когда файловая система смонтирована с опцией "data=journal" все данные файла уже журналируются и этот атрибут не имеет никакого эффекта. Только суперпользователь или процесс, обладающий возможностью CAP_SYS_RESOURCE, может установить или очистить этот атрибут.
При удалении файла с установленным атрибутом `s' выполняется обнуление его блоков и запись их обратно на диск.
Модифицируя файл с атрибутом `S', внесенные изменения синхронно записываются на диск; использование этого атрибута эквивалентно применению опции монтирования `sync' к подмножеству расположенных файлов.
Директория с установленным атрибутом 'T' будет считаться, как расположенная на вершине иерархии директорий с целью использования метода распределения блоков по Orlov (который применяется в системах с Linux 2.5.46 или выше).
Файл с установленным атрибутом 't' не будет иметь в конце (в блоке на диске) дописанных (склеенных с ним) частичных фрагментов (хвостов) других файлов (для тех файловых систем, которые поддерживают "склеивание хвостов" файлов). Это необходимо для программ типа LILO, которые непосредственно обращаются к файловой системе и не понимают "склеивание хвостов" файлов. Правда, здесь следует отметить, что файловые системы ext2 или ext3 не поддерживают для файлов "склеивание хвостов" (всё же, кроме некоторых весьма экспериментальных заплаток).
При удалении файла с атрибутом `u', его содержимое сохраняется (остается не тронутым) на диске. Это позволяет пользователю в последующем восстановить такой файл.
Атрибут 'X' используется экспериментальными заплатками сжатия для определения того, что к необработанному содержанию сжатого файла можно получить непосредственный доступ. Это состояние может быть установлено или сброшено с помощью chattr(1), а отображено lsattr(1).
Атрибут 'Z' используется экспериментальными заплатками сжатия для определения того, что сжатый файл является необработанным. Это состояние может быть установлено или сброшено с помощью chattr(1), а отображено lsattr(1).
Опция `j' полезна только для смонтированной файловой системы ext3.
Опция `D' полезна только для ядра Linux 2.5.19 или выше.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |