Часть тома с записями метафайлов – единственная часть логического диска, имеющая строго фиксированное положение, и образует первый отрезок на томе. Копия этих же 16 записей MFT (для надежности) хранится в середине тома. Оставшаяся часть файла MFT может располагаться, как и любой другой файл, в произвольных местах диска – восстановить его положение можно с помощью первой записи MFT.
|
Таблица 2.3
|
Метафайлы NTFS
|
Номер записи
|
Назначение служебного файла
|
Имя файла
|
0
|
Главная таблица файлов
|
$ Mft
|
1
|
Копия первых 16 записей таблицы, размещенных посередине тома
|
$MftMirr
|
2
|
Файл журнала транзакций – используется для восстановления файловой системы после сбоя
|
$LogFile
|
3
|
Информация о томе – метка тома, версия NTFS и др.
|
$Volume
|
4
|
Таблица стандартных атрибутов файлов на томе
|
$AttrDef
|
5
|
Корневой каталог
|
$
|
6
|
Битовая карта свободных кластеров на томе (1/0 – на кластер)
|
$Bitmap
|
7
|
Адрес загрузочного сектора (если раздел загрузочный) – располагается в первом секторе тома
|
$Boot
|
8
|
Файл плохих кластеров
|
$BadClus
|
9
|
Таблица квот – квоты используемого пространства на диске для каждого пользователя
|
$Quota
|
10
|
Таблица преобразования символов в именах файлов в кодировке Unicode
|
$Upcase
|
11-15
|
Зарезервировано для будущего использования
|
|
Каждый файл и каталог на томе NTFS состоит из набора атрибутов, к которым относятся и имя файла, и его данные. Существуют два способа хранения атрибутов файла – резидентное хранение в записях таблицы MFT и нерезидентное хранение – вне ее, во внешних отрезках.
Файлы NTFS в зависимости от способа размещения делятся на:
небольшие;
большие;
очень большие;
сверхбольшие.
Небольшие файлы. Если файл имеет небольшой размер (несколько сот байт), то он может целиком располагаться внутри одной записи MFT.
Такие файлы состоят из следующих атрибутов (рис. 2.10):
стандартная информация (SI) – время создания файла, время обновления и т. п.;
имя файла (FN);
данные (Data);
дескриптор безопасности (SD – security descriptor) – информация о правах доступа к файлу пользователей.
Рис. 2.10. Структура небольшого файла на томе NTFS (в записи MFT)
Большие файлы. Если данные файла не помещаются в одну запись MFT, то этот факт отражается в заголовке атрибута Data, который указывает на нерезидентное хранение данных, а сам атрибут Data содержит адресную информацию (VCN, LCN, k) каждого отрезка данных (рис. 2.11).
Рис. 2.11. Структура большого файла на томе NTFS
Таким образом, для размещения большого файла используется одна запись в таблице MFT и некоторое количество отрезков кластеров вне таблицы MFT.
Очень большие файлы. Формируются, если в атрибуте Data недостаточно места для размещения всей адресной информации об отрезках с данными файла. В этом случае атрибуту Data выделяется целиком другая запись (строка) таблицы MFT, а ее номер указывается в первой записи в специальном атрибуте (AL) (рис. 2.12).
Рис. 2.12. Структура очень большого файла на томе NTFS
Сверхбольшие файлы. Формируются в том случае, если атрибут Data, хранящий адреса нерезидентных отрезков данных, не помещается в одной отдельной записи MFТ. Номера всех занятых записей указываются в первой записи файла в атрибуте AL (Attribute List – список атрибутов).
Каждый каталог на томе NTFS тоже является файлом, у которого вместо атрибута Data имеется атрибут IR (Index Root – корень индекса), в котором хранятся имена файлов с соответствующими номерами записей в таблице MFT. Каталоги, как и обычные файлы, могут быть небольшими, целиком помещающиеся в одной записи MFT, и большие, использующие для хранения атрибутов файлов нерезидентные отрезки кластеров.
2.5.3. Особенности файловых систем, используемых в UNIX
Файловая система в UNIX-системах выполняет больше функций, чем в других операционных системах.
Во-первых, в нее интегрированы все устройства ввода-вывода.
Во-вторых, каждый файл (в том числе каждый каталог и устройство ввода-вывода) имеет персональный индексный дескриптор и может иметь несколько имен.
Следует отметить, что в UNIX-системах вместо термина "кластер" используют термин "блок".
Рассмотрим общую структуру файловых систем UNIX на примере файловой системы ufs.
В расположении файловой системы на диске следует выделить четыре области:
загрузочный блок;
суперблок, который содержит самую общую информацию о файловой системе: размер файловой системы, размер области индексных дескрипторов, число индексных дескрипторов, список свободных блоков (кластеров) и список свободных индексных дескрипторов, а также другую административную информацию;
область индексных дескрипторов, в которой порядок расположения индексных дескрипторов соответствует их номерам;
область данных, в которой расположены как обычные файлы, так и файлы-каталоги, в том числе и корневой каталог; специальные файлы (ассоциированные с устройствами ввода-вывода) представлены в файловой системе только записями в соответствующих каталогах и индексными дескрипторами специального формата, но места в области данных не занимают.
Основной особенностью организации файловой системы, применяемой в UNIX, является отделение имени файла от его характеристик, хранящихся в отдельной структуре, называемой индексным дескриптором.
Каждый индексный дескриптор имеет номер, который одновременно является уникальным именем файла в файловой системе и выделяется файлу из числа свободных номеров при создании файла на диске.
Запись о файле в каталоге состоит всего из двух полей: символьного имени файла и номера индексного дескриптора. Следовательно, один номер индексного дескриптора (т. е. один реальный файл) может соответствовать различным символьным именам этого файла. Файл удаляется из системы и его дескриптор освобождается лишь после удаления его последнего символьного имени.
Индексный дескриптор файла содержит следующие данные о файле:
идентификатор владельца файла;
тип файла (обычный, каталог, специальный, конвейер, символьная связь);
временные характеристики: время последней модификации файла и т. п.;
число ссылок на данный индексный дескриптор, равный количеству псевдонимов (символьных имен) файла;
адресная информация – расположение частей файла по блокам (кластерам) в области данных диска;
размер файла в байтах.
В файловой системе ufs имена файлов могут иметь длину до 255 символов.
В настоящее время бурно развивается направление UNIX-систем, получивших название по имени создателя (Линус Торвальдс) – Linux. В различных вариантах этой операционной системы используются файловые системы ext 2 fs (Second Extended File System) и ext3fs, являющиеся дальнейшим развитием ufs.
2.6. Доступ к разделяемым ресурсам
Существуют различные виды ресурсов, с которыми пользователи работают в режиме совместного использования. Во всех случаях действует общая схема: пользователи пытаются выполнить с разделяемым ресурсом определенные операции, а операционная система должна решать, имеют ли пользователи на это право.
2.6.1. Механизм контроля доступа
При организации доступа к разделяемым ресурсам обычно считают, что пользователи являются субъектами доступа, а разделяемые ресурсы – объектами.
Пользователи осуществляют доступ к объектам операционной системы не непосредственно, а с помощью прикладных процессов, которые запускаются от его имени.
Для каждого типа объектов существует набор операций, которые с ними можно выполнять. Например, для файлов – это операции чтения, записи, удаления, выполнения; для принтера – перезапуск, очистка очереди документов, приостановка печати документа и т. д.
Система контроля доступа ОС должна предоставлять средства для задания прав пользователей по отношению к объектам дифференцированно по операциям, например, пользователю может быть разрешена операция чтения и выполнения файла, а операция удаления файла запрещена.
Во многих операционных системах реализованы механизмы, которые позволяют управлять доступом к объектам различного типа с единых позиций. Так, представление устройств ввода-вывода в виде специальных файлов в операционных системах UNIX является примером такого подхода: в этом случае при доступе к устройствам используются те же атрибуты безопасности и алгоритмы, что и при доступе к обычным файлам.
Еще дальше продвинулись в этом направлении операционные системы Windows на основе технологии NT. В этих операционных системах используется унифицированная структура – объект безопасности, которая создается не только для файлов и внешних устройств, но и для любых разделяемых ресурсов: секций памяти и т. п. Это позволяет использовать в операционной системе для контроля доступа к ресурсам любого вида общий модуль ядра – менеджер безопасности.
В качестве субъектов доступа могут выступать как отдельные пользователи, так и группы пользователей.
Определение индивидуальных прав доступа для каждого пользователя позволяет максимально гибко задать политику расходования разделяемых ресурсов в вычислительной системе. Однако этот способ приводит в больших системах к чрезмерной загрузке администратора рутинной работой по повторению одних и тех же операций для пользователей с одинаковыми правами.
Объединение пользователей, имеющих одинаковые права доступа, в группу и задание прав доступа в целом для группы является одним из основных приемов администрирования в больших системах.
У каждого объекта доступа существует владелец, который может быть как отдельным пользователем, так и группой пользователей. Владелец объекта имеет право выполнять с ним любые допустимые для данного объекта операции.
Во многих операционных системах существует особый пользователь (superuser, root, administrator, администратор), который имеет все права по отношению к любым объектам системы, не обязательно являясь их владельцем.
Каждый пользователь и каждая группа пользователей обычно имеют символьное имя (часто называемое логином), назначаемое администратором, а также уникальный числовой идентификатор (ID), присваиваемый им операционной системой.
При выполнении процедуры логического входа в систему пользователь сообщает свое символьное имя и пароль, а операционная система определяет соответствующие числовые идентификаторы пользователя и групп, в которые он входит. Все идентификационные данные, в том числе имена и идентификаторы пользователей и групп, пароли пользователей, а также сведения о вхождении пользователя в группы хранятся в специальном файле (файл /etc/passwd в UNIX) или в специальной базе данных (в Windows семейства NT).
В общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем ресурсам системы, а строки – всем пользователям. На пересечении строк и столбцов указываются разрешенные операции (см. табл. 2.4).
|
Таблица 2.4
|
Пример матрицы прав доступа к файлам
|
Пользователи
|
Файлы
|
file1.txt
|
file2.exe
|
file3.doc
|
file5.txt
|
…
|
user1
|
читать
|
выполнять
|
читать
|
читать
|
|
user2
|
читать
|
выполнять
|
читать
удалять
|
–
|
|
user3
|
читать
|
–
|
читать
|
–
|
|
user4
|
читать
писать
|
–
|
читать
удалять
|
–
|
|
…
|
|
|
|
|
|
Практически во всех операционных системах матрица прав доступа хранится «по частям», т. е. для каждого файла или каталога создается так называемый список управления доступом (Access Control List, ACL), в котором описываются права на выполнение операций пользователей и групп пользователей по отношению к этому файлу и каталогу.
Список управления доступом является частью характеристик файла или каталога и хранится в соответствующей области, например, в дескрипторе безопасности (SD) файловой системы NTFS.
Не все файловые системы поддерживают списки управления доступом, например, его не поддерживает файловая система FAT, т. к. она разрабатывалась для однопользовательской однопрограммной операционной системы MS DOS, для которой задача защиты от несанкционированного доступа была не актуальна.
Обобщенно формат списка управления доступом можно представить в виде набора идентификаторов пользователей и групп пользователей, в котором для каждого идентификатора указывается набор разрешенных операций над объектом. Говорят, что список ACL состоит из элементов управления доступом (Access Control Element, ACE), при этом каждый элемент соответствует одному идентификатору.
Список ACL с добавленным к нему идентификатором владельца называют характеристиками безопасности.
На рис. 2.13 представлен пример проверки прав доступа некоторого процесса, запущенного от имени пользователя с ID = 3 и являющегося членом ряда групп (с ID = 14, ID = 52 и ID = 72), к файлу, имеющему определенный ACL.
Рис. 2.13. Проверка прав доступа к файлу
В приведенном примере файлом владеет пользователь с идентификатором 17. Операционная система, получив запрос на запись, находит характеристики безопасности файла (на диске или в буферной системной памяти) и последовательно сравнивает все идентификаторы процесса с идентификаторами пользователей и групп в элементах ACE.
В данном примере идентификатор группы 2 (ID = 52), от имени которой выступает процесс, совпадает с идентификатором одного из элементов ACE. Поэтому операционная система разрешает процессу выполнить операцию «запись» – W.
2.6.2. Организация контроля доступа в операционных системах Windows 2000/ XP
Описанный выше обобщенный механизм доступа к ресурсам имеет в каждой операционной системе свои особенности.
Система управления доступом в ОС Windows 2000/ XP отличается высокой степенью гибкости, которая достигается за счет большого разнообразия субъектов и объектов доступа, а также детализации операций доступа.
Для разделяемых ресурсов в Windows 2000/ XP применяется общая модель объекта, который содержит такие характеристики безопасности, как набор допустимых операций, идентификатор владельца, список управления доступом. Объекты создаются для любых ресурсов в том случае, когда они становятся разделяемыми. Характеристики объектов делятся на две части – общую часть, состав которой не зависит от типа объекта, и индивидуальную, определяемую типом объекта.
Для системы безопасности ОС Windows на основе технологии NT характерно наличие большого количества встроенных субъектов доступа – как отдельных пользователей (Администратор, Гость), так и групп (Администраторы, Гости, Пользователи, Опытные пользователи, Операторы архива и др.). Смысл этих встроенных пользователей и групп состоит в том, что они наделены некоторыми правами, облегчая администратору работу по созданию эффективной системы разграничения доступа.
При добавлении нового пользователя администратору остается только решить, к какой группе или группам отнести этого пользователя. При этом администратор может создавать новые группы, а также добавлять права к встроенным группам для реализации собственной политики безопасности, но во многих случаях встроенных групп вполне достаточно.
В операционных системах Windows 2000/ XP реализованы три класса операций доступа, которые отличаются типом субъектов и объектов, участвующих в этих операциях.
|