<<
>>

Расширенные атрибуты

  Файл или каталог может обладать расширенными атрибутами, которые представляют собой пары «имя-значение». Если файл или каталог обладает расширенными атрибутами, то в его индексном узле будет указан адрес, по которому эти атрибуты хранятся.

Блок расширенных атрибутов состоит из трех секций. Первые 32 байта образуют заголовок; за ним следует вторая секция, содержащая список записей имен. Третья секция начинается с конца блока и следует по направлению к началу. В ней хранятся значения атрибутов, причем их порядок может не совпадать с порядком следования записей имен. Структура блока расширенных атрибутов показана на рис. 15.1.

Заголовок расширенных атрибутов начинается с байта 0 блока, а его длина равна 32 байтам. Поля заголовка перечислены в табл. 15.15.

Таблица 15.15. Структура данных заголовка расширенных атрибутов

Диапазон

Описание

Необходимость

0-3

Сигнатура (0хЕА020000)

Нет

4-7

Счетчик ссылок

Нет

8-11

Количество блоков

Да

12-15

Хеш-код

Нет

16-31

Зарезервировано

Нет

Счетчик ссылок указывает, сколько файлов с одинаковыми расширенными атрибутами совместно использует этот блок расширенных атрибутов. Linux в настоящее время не поддерживает многоблочные списки атрибутов, но в других ОС такая возможность может быть реализована. По хеш-кодам, вычисляемому по значениям атрибутов, ОС легко проверяет, обладают ли два файла одинаковыми атрибутами.

После заголовка начинаются записи имен.

Структура каждой записи описана в табл. 15.16.

Таблица 15.16. Структура данных записи имен блока расширенных атрибутов

Диапазон

Описание

Необходимость

0-0

Длина имени

Да

1-1

Тип атрибута (см. табл. 15.17)

Да

2-3

Смещение значения

Да

4-7

Блок, содержащий значение атрибута

Да

8-11

Размер значения

Да

12-15

Хеш-код значения

Нет

16+

Имя в кодировке ASCII

Да

Смещение задается в байтах внутри заданного блока. В текущих версиях Linux набор расширенных атрибутов может храниться только в одном блоке, а поле блока в записи не заполняется. Поле размера содержит количество байт в значении. Длина имени определяет длину записи, а следующая запись начинается с ближайшей 4-байтовой границы. Поле типа записи может содержать одно из шести значений, приведенных в табл. 15.17.

Таблица 15.17. Значения поля типа в записях имен расширенных атрибутов

Значение              Описание

1

Атрибут пользовательского пространства

2

POSIX ACL

3

POSIX ACL по умолчанию (только для каталогов)

4

Атрибут доверенного пространства

5

LUSTRE (в настоящее время не используется в Linux)

6

Атрибут пространства безопасности

Если атрибут относится к пользовательскому или доверенному пространству, а также пространству безопасности, в конце блока хранится простое значение, соответствующее данному имени.

Если в поле типа указан один из типов POSIX ACL, значение обладает собственным набором структур данных.

«Значение» атрибута POSIX ACL начинается с заголовка, за которым следует список записей. Структура данных заголовка содержит единственное поле, представленное в табл. 15.18. Структура данных записей ACL приведена в табл. 15.19.

Таблица 15.18. Структура данных заголовка POSIX ACL

Диапазон

Описание

Необходимость

0-3

Версия (1)

Да

Таблица 15.19. Структура данных записей POSIX ACL

Диапазон

Описание

Необходимость

0-1

Тип (см. табл. 15.20)

Да

2-3

Разрешения (см. табл. 15.21)

Да

4-7

Идентификатор пользователя/группы (не включается для некоторых типов)

Да

Поле типа в записи ACL определяет тип разрешений, для которого предназначена данная запись. Определены значения, перечисленные в табл. 15.20.

Таблица 15.20. Допустимые значения поля типа в записях POSIX ACL

Значение              Описание

0x001

Пользователь — указывается в индексном узле

0x004

Группа — указывается в индексном узле

0x20

Прочие — все остальные пользователи

/>0x10

Маска прав

0x02

Пользователь — указывается в атрибуте

0x08

Г руппа — указывается в атрибуте

Первые три типа относятся к владельцу, группе и «прочим» пользователям, обычно используемым в индексных узлах ExtX.

Другими словами, информация в этих записях дублирует информацию, находящуюся в индексном узле. Размер записи, относящейся к одному из этих типов, равен всего 4 байтам, потому что такие записи не используют поле идентификаторов в байтах 4-7. Для других типов должен быть задан идентификатор пользователя или группы, к которым относятся разрешения.

Поле разрешений содержит флаги, перечисленные в табл. 15.21.

Флаг разрешений Описание
0x001 Выполнение
0x002 Запись
0x004 Чтение

Таблица 15.21. Флаги поля разрешений в записях POSIX ACL

# dcat -f linux-ext3 ext3-2.dd 1238 0000000:              0000              02ea              0100              0000              0100              0000              7447              05e8

0000016:              0000              0000              0000              0000              0000              0000              0000              0000

0000032:              0601              c003              0000              0000              1900              0000              a8e9              5147

0000048:              736f              7572              6365              0000              0002              dc03              0000              0000

0000064:              2400              0000              2500              adOl              0000              0000              0000              0000

[...]

0000944:              0000              0000              0000              0000              0000              0000              0000              0000

0000960:              7777              772e              6469              6769              7461              6c2d              6576              6964

0000976:              656e              6365              2e6f              7267              0000              0000              0100              0000

0000992:              0100              0600              0200              0400              4a00              0000              0200              0600

0001008:              f401              0000              0400              0400              1000              0600              2000              0400

Первые 4 байта содержат сигнатуру, в байтах 4-7 находится счетчик ссылок со значением 1, а в байтах 8-11 — количество блоков 1.

Первая запись начинается с байта 32; мы видим, что длина имени в ней равна 6. Запись относится к типу 1 (атрибут пользовательского пространства), а байты 2-3 показывают, что значение хранится со смещением 960 (ОхОЗсО). Байты 40-43 показывают, что размер значения равен 25 байтам, а байт 48 является первым байтом имени атрибута «source». Имя заканчивается в байте 53. Записи выравниваются по границе 4 байт, поэтому за следующим атрибутом необходимо перейти к байту 56. Значение первого атрибута хранится в байтах 960-94 и представляет собой строку «www.digitaUevidence.org».

Блок также содержит второй атрибут для записи ACL. Он начинается в байте 988 и продолжается до байта 1023. Заголовок хранится в байтах 988-991, а первая запись находится в байтах 992-993. Запись относится к типу 1, то есть определяет разрешения для идентификатора пользователя, указанного в индексном узле. Разрешения задаются в байтах 994-995; мы видим, что владелец обладает разрешениями на чтение и запись. Вторая запись начинается с байта 996 и относится к типу 2. Она предоставляет разрешения на чтение пользователю с идентификатором 74 (0x4а). При желании читатель может расшифровать остальные разрешения самостоятельно, а я приведу результат выполнения программы istat для файла: istat -f linux-ext3 ext3-2.dd 70 [...]

Extended Attributes (Block: 1238) user.source=www.digital -evidence.org POSIX Access Control List Entries: uid: 0: Read. Write uid: 74: Read uid: 500: Read. Write gid: 0: Read mask: Read. Write other: Read [...3

<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Расширенные атрибуты:

  1. Расширенные атрибуты UFS2
  2. Стандартные атрибуты файлов
  3. Атрибуты записей MFT
  4. Другие концепции атрибутов
  5. Атрибуты и структуры данных индексов
  6. Атрибуты индексов NTFS
  7. 1.2.2. Отбор и найм как атрибуты рыночного хозяйствования
  8. Тема 6.1. Политический плюрализм и многопартийность как неотъемлемые атрибуты демократии
  9. Медиа — расширения человека
  10. Управление процессом расширения
  11. Способы расширения границ торговых марок
  12. 4.4. Роль финансов в процессе расширенного воспроизводства
  13. 12.2. Расширенная концепция производства
  14. Направления расширения подразделений
  15. Расширение сельскохозяйственных угодий
  16. Расширение границ торговой марки и ассортимент продукции
  17. Расширение НАТО и Россия
  18. 2.3. Проблемы природопользования в условиях расширенного воспроизводства