Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Каждый каталог NTFS представляет собой один вход в таблицу MFT, который содержит атрибут Index Root – список файлов, входящих в каталог. Индексы позволяют сортировать файлы для ускорения поиска, основанного на значении определенного атрибута. Обычно в файловых системах файлы сортируются по имени. NTFS позволяет использовать для сортировки любой атрибут, если он хранится в резидентной форме. Существуют две формы хранения списка файлов.
Небольшие каталоги (small indexes). Если количество файлов в каталоге невелико, то список файлов может быть резидентным в записи в MFT, являющейся каталогом (рис. 5.14).
SI | FN | IR <a.bat, 27> <c.sys, 92> <zyx, N > <####> | SD |
#### – признак конца файлов
Рис. 5.14. Небольшой каталог
Для резидентного хранения списка используется единственный атрибут - Index Root. Список файлов содержит значения атрибутов файла. По умолчанию – это имя файла, а также номер записи MTF, содержащей начальную запись файла.
Большие каталоги (large indexes). По мере того как каталог растет, список файлов может потребовать нерезидентной формы хранения. Однако начальная часть списка всегда остается резидентной в корневой записи каталога в таблице MFT (рис. 5.15). Имена файлов резидентной части списка файлов являются узлами так называемого В-дерева (двоичного дерева). Остальные части списка файлов размещаются вне MFT. Для их поиска используется специальный атрибут Index Allocation, представляющий собой адреса отрезков, хранящих остальные части списка файлов каталога. Одни части списков являются листьями дерева, а другие являются промежуточными узлами, т.е. содержат наряду с именами файлов атрибут Index Allocation, указывающий на списки файлов более низких уровней.
Узлы двоичного дерева делят весь список файлов на несколько групп. Имя каждого файла-узла является именем последнего файла в соответствующей группе. Считается, что имена файлов сравниваются лексикографически, т.е. сначала принимаются во внимание коды первых символов двух сравниваемых имен. При этом имя считается меньшим, если код его первого символа имеет меньшее арифметическое значение. При равенстве кодов первых символов сравниваются коды вторых символов имен и т.д. Например, файл f1.exe, являющийся первым узлом двоичного дерева (поле IR), показанного на рис. 5.15, имеет имя, лексикографически большее имен avia.exe, az.exe,..., emax.exe, образующих первую группу списка имен каталога. Соответственно файл ltr.exe имеет наибольшее имя среди всех имен второй группы, а все файлы с именами, большими ltr.exe, образуют третью и последнюю группу.
SI | FN | IR <f1.exe, Nf1.exe> <ltr.exe, Nltr.exe> <####> | IA | SD |
IR <avia.doc, Navia.doc> <az.exe, Naz.exe> … <emax.exe, Nemax.exe> <####> | ||||
IR <gl.htm, Ngl.htm> <green.com, Ngreen.com> … <caw.doc, Ncaw.doc> <####> | ||||
IR<main1.c, Nmain1.c> … <zero.txt, Nzero.txt> <####> |
Рис. 5.15. Большой каталог
Поиск в каталоге уникального имени файла, которым в NTFS является номер основной записи о файле в MFT, по его символьному имени происходит следующим образом. Сначала искомое символьное имя сравнивается с именем первого узла в резидентной части индекса. Если искомое имя меньше, то это означает, что его нужно искать в первой нерезидентной группе, для чего из атрибута Index Allocation извлекается адрес отрезка , хранящего имена файлов первой группы. Среди имен этой группы поиск осуществляется прямым перебором и сравнением до полного совпадения всех символов искомого имени с именем, хранящимся в каталоге. При совпадении из каталога извлекается номер основной записи о файле в MFT и остальные характеристики файла берутся уже
оттуда.
Если искомое имя больше имени первого узла резидентной части индекса, то его сравнивают с именем второго узла; если искомое имя меньше, то описанная процедура применяется ко второй нерезидентной группе имен, и т.д. В результате вместо перебора большого количества имен (в худшем случае - всех имен каталога) выполняется сравнение с гораздо меньшим количеством имен узлов и имен в одной из групп каталога.
Если одна из групп каталога становится слишком большой, то ее также делят на группы, последние имена каждой новой группы оставляют в исходном нерезидентном атрибуте Index Root, а все остальные имена новых групп переносят в новые нерезидентные атрибуты типа Index Root
(на рис. 5.15 этот случай не показан). К исходному нерезидентному атрибуту Index Root добавляется атрибут размещения индекса, указывающий на отрезки индекса новых групп. Если теперь при поиске искомого имени в нерезидентной части индекса первого уровня какое-либо сравнение показывает, что искомое имя оказывается меньше, чем одно из хранящихся там имен, то это говорит о том, что в данном атрибуте точного сравнения имени уже быть не может и нужно перейти к подгруппе имен следующего уровня дерева.
Вопросы для самопроверки
149. На какие области разбивает файловая система FAT логический раздел диска?
150. Укажите основную информационную составляющую файловой системы NTFS.
151. Что является основной компонентой файла в NTFS?
152. Для каких целей в NTFS используется информация об узлах
B-дерева?
Контрольные вопросы
153. В каких единицах дискового пространства ОС выделяет место под файлы?
154. Что понимают под разделом (partition) жесткого диска?
155. Обязательно ли одно логическое устройство размещается на одном жестком диске?
156. Какому параметру соответствует количество индексных указателей в таблице FAT?
157. Какое максимальное количество кластеров может поддерживать файловая система FAT16?
158. В каком случае в файловой системе FAT16 гарантируется надежное восстановление файла?
159. Как в терминах ОС UNIX принято называть информационную структуру, в которой хранятся характеристики файла?
160. Чем является индексный дескриптор с точки зрения идентификации файла?
161. Может ли файл в ОС UNIX иметь более одного символьного
имени?
162. Какая базовая единица дискового пространства используется для хранения информации в NTFS?
163. Какое количество стандартных записей содержит первый отрезок MFT?
164. Какие поля содержатся в атрибуте файла?
165. На какие типы делят файлы в NTFS в зависимости от способа их размещения?
166. Какая информация содержится в поле Data больших файлов?
167. Какую информацию содержит атрибут Index Root?
168. Какие атрибуты связаны с конкретным файлом в каталожной
записи?
5.8. Контроль доступа к файлам
5.8.1. Доступ к файлам как частный случай доступа
к разделяемым ресурсам
Файлы – это частный, хотя и самый популярный, вид разделяемых ресурсов, доступ к которым операционная система должна контролировать. Существуют и другие виды ресурсов, с которыми пользователи работают в режиме совместного использования. Прежде всего, это различные внешние устройства: принтеры, модемы, графопостроители и т.п. Область памяти, используемая для обмена данными между процессами, также является примером разделяемого ресурса. Да и сами процессы в некоторых случаях выступают в этой роли, например, когда пользователи ОС посылают процессам сигналы, на которые процесс должен реагировать.
Во всех этих случаях действует общая схема: пользователи пытаются выполнить с разделяемым ресурсом определенные операции, а ОС должна решать, имеют ли пользователи на это право. Пользователи являются
субъектами доступа, а разделяемые ресурсы – объектами. Пользователь осуществляет доступ к объектам операционной системы не непосредственно, а с помощью прикладных процессов, которые запускаются от его имени. Для каждого типа объектов существует набор операций, которые с ними можно выполнять. Например, для файлов это операции чтения, записи, удаления, выполнения; для принтера – перезапуск, очистка очереди документов, приостановка печати документа и т.д. Система контроля доступа ОС должна предоставлять средства для задания прав пользователей по отношению к объектам дифференцированно по операциям, например, пользователю может быть разрешена операция чтения и выполнения файла, а операция удаления – запрещена.
Во многих операционных системах реализованы механизмы, которые позволяют управлять доступом к объектам различного типа с единых позиций. Так, представление устройств ввода-вывода в виде специальных файлов в операционных системах UNIX является примером такого подхода:
в этом случае при доступе к устройствам используются те же атрибуты безопасности и алгоритмы, что и при доступе к обычным файлам и каталогам. Еще дальше продвинулась в этом направлении операционная система Windows NT. В ней используется унифицированная структура – объект безопасности. Она создается не только для файлов и внешних устройств, но и для любых разделяемых ресурсов, например секций памяти. Это позволяет использовать в Windows NT для контроля доступа к ресурсам любого вида общий модуль ядра – менеджер безопасности.
В качестве субъектов доступа могут выступать как отдельные пользователи, так и группы пользователей. Определение индивидуальных прав доступа для каждого пользователя позволяет максимально гибко задать политику расходования разделяемых ресурсов в вычислительной системе. Однако этот способ приводит в больших системах к чрезмерной загрузке администратора рутинной работой по повторению одних и тех же операций для пользователей с одинаковыми правами. Объединение таких пользователей в группу и задание прав доступа в целом для группы является одним из основных приемов администрирования в больших системах.
У каждого объекта доступа существует владелец. Владельцем может быть как отдельный пользователь, так и группа пользователей. Владелец объекта имеет право выполнять с ним любые допустимые для данного объекта операции. Во многих операционных системах существует особый пользователь (superuser, root, administrator), который имеет все права по отношению к любым объектам системы, не обязательно являясь их владельцем. Под таким именем работает администратор системы, которому необходим полный доступ ко всем файлам и устройствам для управления политикой доступа.
Различают два основных подхода к определению прав доступа.
Избирательный доступ имеет место, когда для каждого объекта сам владелец может определить допустимые операции с объектами. Этот подход называется также произвольным (от discretionary – предоставленный на собственное усмотрение) доступом, так как позволяет администратору и владельцам объектов определить права доступа произвольным образом, по их желанию. Между пользователями и группами пользователей в системах с избирательным доступом нет жестких иерархических взаимоотношений, т.е. взаимоотношений, которые определены по умолчанию и которые нельзя изменить. Исключение делается только для администратора, по умолчанию наделяемого всеми правами.
Мандатный доступ (от mandatory –обязательный, принудительный) – это такой подход к определению прав доступа, при котором система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости от того, к какой группе пользователь отнесен. От имени системы выступает администратор, а владельцы объектов лишены возможности управлять доступом к ним по своему усмотрению. Все группы пользователей в такой системе образуют строгую иерархию, причем каждая группа пользуется всеми правами группы более низкого уровня иерархии, к которым добавляются права данного уровня. Членам какой-либо группы не разрешается предоставлять свои права членам групп более низких уровней иерархии.
Мандатный способ доступа близок к схемам, применяемым для доступа к секретным документам: пользователь может входить в одну из групп, отличающихся правом доступа к документам с соответствующим грифом секретности, например, «для служебного пользования», «секретно», «совершенно секретно» и «государственная тайна». При этом пользователи группы «совершенно секретно» имеют право работать с документами «секретно» и «для служебного пользования», так как эти виды доступа разрешены для более низких в иерархии групп. Однако сами пользователи не распоряжаются правами доступа – этой возможностью наделен только особый чиновник учреждения.
Мандатные системы доступа считаются более надежными, но менее гибкими, обычно они применяются в специализированных вычислительных системах с повышенными требованиями к защите информации.
В универсальных системах используются, как правило, избирательные методы доступа, о которых и будет идти речь ниже.
Для определенности далее будем рассматривать механизмы контроля доступа к таким объектам, как файлы и каталоги, но необходимо понимать, что эти же механизмы могут использоваться в современных операционных системах для контроля доступа к объектам любого типа и отличия заключаются лишь в наборе операций, характерных для того или иного класса объектов.
Дата публикования: 2014-11-03; Прочитано: 456 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!