Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7), РУСБ.10015-10
  • Astra Linux Special Edition РУСБ.10015-17
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-03 (очередное обновление 7.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-16 исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
  • Astra Linux Common Edition 2.12

Что такое расширенные атрибуты

Расширенные атрибуты файловых объектов (далее - расширенные атрибуты) - поддерживаемая некоторыми файловыми системами возможность ассоциировать с файловыми объектами произвольные метаданные. В отличие от обычных атрибутов файловых объектов (таких, как владелец, права доступа, время создания и пр.), содержание расширенных атрибутов не специфицируется в файловой системе и может принимать любые значение. С точки зрения реализации расширенные атрибуты представляют собой пары ключ:значение, ассоциированные с файловыми объектами. Типичными применениями расширенных атрибутов является хранение таких данных, как автор документа, контрольные суммы, источник документа, информация для контроля доступа.

Какими файловыми системами поддерживаются расширенные атрибуты

Расширенные атрибуты не поддерживаются файловыми системами vfat, fat16, fat32 и поддерживаются подавляющим большинством современных файловых систем. Из часто применяемых в Astra Linux файловых систем расширенные атрибуты поддерживаются в: ext2, ext3, ext4, xfs, tmpfs.

Файловая система tmpfs поддерживает расширенные атрибуты, однако в ней запрещено использовать пользовательские расширенные атрибуты (пространство имен user, см. ниже).

Какие бывают расширенные атрибуты

Реализация расширенных атрибутов зависит от используемой файловой системы, и полную информацию следует искать в соответствующей документации. Наиболее распространенная файловая система ext4 имеет следующие особенности реализации расширенных атрибутов :

  • Для хранения расширенных атрибутов каждого файлового объекта предусмотрено четыре пространства имен (namespaces):
    • user - произвольные атрибуты, контролируемые владельцем файла;
    • trusted - расширенные атрибуты, доступные только процессам с привилегией CAP_SYS_ADMIN и использующиеся для хранения информации с ограничением доступа в пользовательском пространстве (т.е. без использования ядра);
    • security - используются комплексами защиты информации для хранения информации, связанной с контролем доступа;
    • system - используется ядром для хранения ACL (см. Списки управления доступом к файловым объектам (ACL) в Astra Linux);

Ядро Astra Linux позволяет использовать для имен атрибутов до 255 байт, и до 64КБ для хранения значений, однако:

  • в файловых системах ext2/etc3/ext4:
    • все расширенные атрибуты должны помещаться в один блок файловой системы (обычно 4КБ), что ограничивает размеры имен и значений;
    • с учетом наличия пространств имен имена всех расширенных атрибутов должны начинаться с префикса, определяющего принадлежность пространству (user, trusted,  security или system).
  • в файловой системе xfs:
    • требования разместить все атрибуты в одном блоке нет, т.е. поддерживается полный размер имен и значений расширенных атрибутов;
    • используется только два пространства имен: user и root.

Работа с расширенными атрибутами из командной строки: attr, getfattr/setfattr

Инструменты командной строки для работы с расширенными атрибутами представлены пакетом attr. Пакет входит состав дистрибутивов Astra Linux и при установке ОС устанавливается по умолчанию. Входящие в состав пакета инструменты применимы ко всем поддерживаемым файловым системам и описаны далее. По всем инструментам доступна подробная справка в справочной системе man. См. также Архивирование и восстановление файлов с сохранением мандатных атрибутов.

getfattr

Инструмент командной строки getfattr позволяет получить атрибуты файлового объекта. Типичное применение:

getfattr -d -m - -e hex <имя_файлового_объекта>
где:

  • -d - дамп всех имеющихся расширенных атрибутов;
  • -m - - поиск атрибутов во всех пространствах имен;
  • -e hex - вывод информации в формате шестнадцатиричного дампа (для вывода текста можно использовать -e text);

Справку по инструменту см.:

man getfattr

setfatrt

Инструмент командной строки setfattr позволяет установить или изменить атрибуты файлового объекта. Пример применения:

setfattr -n user.автор -v РусБИТех-Астра <имя_файла>
где

  • -n user.автор - имя расширеного атрибута (автор) в пространстве user;
  • -v РусБИТех-Астра - значение расширенного атрибута;

Для удаления расширенного атрибута используется ключ -x, например:

setfattr -x user.автор <имя_файла>
Справку по инструменту см.:
man setfattr

attr

Инструмент для работы с расширенными атрибутами в файловой системе xfs. В основном нужен для совместимости. Справку по инструменту см.:

man attr

xattr: получение расширенных в стиле macOS

Инструмент xattr (пакет xattr) портирован из macOS и в Astra Linux Special Edition РУСБ.10015-01 включен начиная с очередного обновления 1.7 (доступен в составе расширенного репозитория). В более ранние обновление при необходимости может быть установлен из репозиториев Debian. По умолчанию при установке ОС не устанавливается и может быть установлен командой:

sudo apt install xattr

Инструмент не рекомендуется к применению, так как корректно работает только с текстовыми значениями расширенных атрибутов. Для работы с расширенными атрибутами рекомендуется использовать инструменты getfattr/setfattr.


Справку по инструменту см.:

man xattr

  • No labels