Каждый индексный узел обладает некоторыми атрибутами, описанными в поле флагов. Следует помнить, что некоторые атрибуты могут не поддерживаться текущей ОС. Одни атрибуты являются экспериментальными, поддержка других в Ьтих прекращена. К числу поддерживаемых относится атрибут, отменяющий обновление А-времени файлов и каталогов. Другой атрибут используется для пометки файлов, которые должны записываться на диск сразу же после изменения данных (без применения кэширования). Еще два атрибута относятся к области безопасности; один атрибут разрешает открывать файл только в режиме дополнения, что делает невозможным удаление данных, и еще один атрибут запрещает изменение файлов (добавление или удаление данных). Наконец, один атрибут указывает, что файл не должен сохраняться при резервном копировании командой dump.

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

Кроме перечисленных атрибутов, файл также может обладать расширенными атрибутами. В Linux расширенные атрибуты используются только в том случае, если файловая система была смонтирована с ключом user_xattr, а поддержка атрибутов включена в ядро (начиная с версии 2.4). Чтобы узнать, монтируется ли файловая система по умолчанию с ключом user_xattr, следует обратиться к файлу /etc/fstab. Если файловая система поддерживает расширенные атрибуты, в ней должен быть установлен соответствующий флаг совместимой функции.

Расширенные атрибуты представляют собой список пар «имя-значение». Пользователь создает произвольные пары вида «user.source=http://www.digital.evi-dence.org» командой setfattr. В данном случае подстрока user определяет пространство имен; также существуют пространства trusted и security. Расширенные атрибуты хранятся в блоке, выделенном файлу. Если несколько файлов обладают одинаковыми расширенными атрибутами, они совместно используют один блок. В блоке перечислены все пары «имя-значение». Ядро Linux 2.6 требует, чтобы все расширенные атрибуты хранились в одном блоке.

Один из вариантов использования атрибутов операционной системой - списки контроля доступа Л CL (Access Control List). По сравнению с существующими механизмами управления доступом ExtX списки ACL обеспечивают более совершенный метод ограничения доступа к файлам. Механизм ACL позволяет предоставить доступ к файлу конкретному кругу пользователей без использования групп UNIX. Данные ACL хранятся в расширенном атрибуте. В системе Linux для создания списка ACL используется команда setfacl, а файловая система должна быть смонтирована с ключом acl. Структуры данных и примеры расширенных атрибутов приводятся в следующей главе.

Пример образа

Чтобы продемонстрировать, как выглядит служебная информация реальных файлов, я приведу выходные данные программы istat для файла из тестовой файловой системы. Анализом индексных узлов мы займемся в следующей главе, а пока приведу отформатированный результат:

# istat -f linux-ext3 ext3.dd 16

inode: 16

Allocated

Group: О

Generation Id: 199922874 uid / gid: 500 / 500 mode: -rw-r--r--size: 10240000 num of links: 1

Inode Times :

Accessed: Fri Aug 1 06:32:13 2003

File Modified: Fri Aug 1 06:24:01 2003

Inode Modified: Fri Aug 1 06:25:58 2003

Direct Blocks:

14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14393 14394 14395 14396 [...]

16880 16881 16882 16883

Indirect Blocks:

14392 15417 15418 16443

Из результатов istat видно, что размер файла равен 10 Мбайт, а для хранения информации обо всех выделенных блоках задействованы четыре косвенных указателя. Также указаны разрешения, тип файла и временные штампы MAC.

Алгоритмы выделения

В этом разделе я привожу собственные наблюдения и результаты анализа исходного кода ядра Linux в области выделения метаданных ExtX. В другой ОС или измененном коде ядра Linux могут использоваться другие алгоритмы выделения. Результаты были получены в стандартной системе Fedora Core 2.

Указатели на блоки | Криминалистический анализ файловых систем | Выделение индексных узлов


Криминалистический анализ файловых систем



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31