Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 51
Текст из файла (страница 51)
Частьдиска с метафайлами — единственная часть диска, имеющая строго фиксированное положение. Копия этих же 16 записей таблицы MFT (для надежности, поскольку они очень важны) хранится в середине тома. Оставшаяся часть файла MFTможет располагаться, как и любой другой файл, в произвольных местах диска —восстановить его положение можно с помощью самого файла MFT.
Для этого достаточно взять первую запись таблицы MFT.Упомянутые первые 16 файлов NTFS (метафайлы) являются служебными; каждый из них отвечает за какой-либо аспект работы системы. Метафайлы находятсяв корневом каталоге тома NTFS. Их имена начинаются с символа «$», хотя получить какую-либо информацию о них стандартными средствами сложно. В табл. 6.6приведены основные метафайлы и указано их назначение. Таким образом, можноузнать, например, сколько операционная система тратит на каталогизацию тома,посмотрев размер файла SMFT.Таблица 6 .
6 . Метафайлы NTFSИмя метафайлаОписаниеSMFTСам файл с таблицей MFT$MFTmirrКопия первых 16 записей таблицы MFT, размещенная посередине томаSLogFileФайл журнала$VolumeСлужебная информация — метка тома, версия файловой системы т. Д.$AttrDefСлисок стандартных атрибутов файлов на томе$Корневой каталогSBitmapБитовая карта свободного места тома$BootЗагрузочный сектор (если раздел загрузочный)файловая с и с т е м а NTFSТУЗИмя метафайлаОписание$QuotaФайл, в котором записаны права пользователей на использованиедискового пространства (этот файл начал использоваться лишьв Windows 2000 с системой NTFS 5.0)$UpcaseФайл с таблицей соответствия строчных и прописных букв в именах файлов.В NTFS имена файлов записываются в кодировке Unicode (всего доступно65 тысяч различных символов, поэтому искать сточные и прописныеэквиваленты символов — нетривиальная задача)Итак, все файлы тома представлены в таблице MFT. За исключением собственноданных, в этой структуре хранится вся информация о файлах: имя файла, размер,положение на диске отдельных фрагментов и т.
д. Если для информации не хватает одной записи MFT, то используются несколько записей, причем не обязательнопоследовательных. Если файл имеет не очень большой размер, тогда в ход идетдовольно удачное решение: данные файла хранятся прямо в соответствующей записи таблицы MFT в оставшемся от служебных данных месте. Таким образом,файлы, занимающие не более сотни байтов, обычно не имеют своего «физического» воплощения в основной файловой области — все данные таких файлов хранятся прямо в таблице MFT.Файл на томе в системе NTFS идентифицируется так называемой файловой ссылкой (file reference), которая представляется как 64-разрядное число.
Файловая ссылка состоит из номера файла, который соответствует позиции его файловой записив таблице MFT, и номера последовательности. Последний увеличивается всякийраз, когда данная позиция в MFT используется повторно, что позволяет файловойсистеме NTFS выполнять внутренние проверки целостности.Каждый файл на диске в системе NTFS представлен с помощью потоков данных(streams)1, то есть у файла нет «просто данных», а есть «потоки данных». Чтобыправильнее понять эту сущность (поток данных), достаточно знать, что один изпотоков имеет привычный нам смысл — это собственно данные файла. Кстати,большинство атрибутов файла (за исключением основных) — это тоже потоки данных. Таким образом, получается, что основой файла является номер записи в таблице MFT, а все остальное, включая его потоки данных, не обязательно. Данныйподход довольно удобен.
Так, файлу можно назначить еще один поток данных, записав в него любые данные, например информацию об авторе и содержании файла, как это сделано в Windows 2000 (эта информация представлена на одной извкладок диалогового окна свойств файла). Здесь имеется определенная аналогиясРасширенными атрибутами в HPFS.
Интересно, что эти дополнительные потокине видны стандартными средствами для работы с файлами операционной системы, наблюдаемый размер файла — это лишь ^размер потока основных (традиционных) данных. Можно, к примеру, удалить файл нулевой длины, и при этом освобоИТся несколько мегабайтов свободного места — просто потому, что какая-нибудьитрая» программа или технология назначила ему поток дополнительных (альеРнативных) данных такого большого размера. Однако на самом деле опасаться'н"утать с потоками выполнения (threads).Глава 6 . Файловые системы194подобных ситуаций не следует (хотя гипотетически они возможны), посколькупока механизм потоков данных в полной мере не используются.
Просто необходимо иметь в виду, что файл в системе NTFS — это более глубокое и глобальное понятие, чем мы себе представляем.Стандартные атрибуты файлов и каталогов на томе NTFS имеют фиксированныеимена и коды типа (табл. 6.7).Таблица 6 . 7 . Атрибуты файлов в системе NTFSСистемный атрибутОписание атрибутаСтандартнаяинформация о файлеТрадиционные атрибуты («только для чтения», «скрытый»,«архивный», «системный»), отметки времени, включая времясоздания или последней модификации, число каталогов,ссылающихся на файлСписок атрибутовСписок атрибутов файла и файловая ссылка на запись в таблице MFT,в которой расположен каждый из атрибутов. Файловая ссылкаиспользуется, если файлу необходимо более одной записи в MFTИмя файлаИмя файла в кодировке Unicode. Файл может иметь несколько имен,подобно тому как это имеет место в UNIX. Это случается, когдаимеется связь POSIX к данному файлу или если у файла естьавтоматически сгенерированное имя в формате 8.3Дескриптор защитыСтруктура данных, соответствующая списку управления доступом(ACL) и предохраняющая файл от несанкционированного доступа.Дескриптор защиты определяет, кто владелец файла и кто имеет теили иные разрешения доступа к немуДанныеСобственно данные файла, его содержимое.
В NTFS у файлапо умолчанию есть один безымянный атрибут данных и могут бытьдополнительные именованные атрибуты данных. У каталога нетатрибута данных по умолчанию, но он может иметь необязательныеименованные атрибуты данныхКорень индекса,размещение индекса,битовая карта (толькодля каталогов)Атрибуты, используемые для индексов имен файлов в большихкаталогахРасширенныеатрибуты HPFSАтрибуты, используемые для реализации расширенных атрибутовHPFS для подсистемы OS/2, а также OS/2-клиентов файл-серверовWindows NTРазрешения NTFSРазрешения NTFS (NTFS permissions) — это набор специальных расширенных атрибутов файла или каталога (папки), заданных для ограничения доступа пользователей к этим объектам.
Они имеются только на томах, где установлена файловаясистема NTFS. Разрешения обеспечивают гибкую защиту, так как их можно применять и к каталогам, и к отдельным файлам; они распространяются как на локальных пользователей (работающих на компьютерах, где находятся защищеннЫпапки и файлы), так и на пользователей, подключающихся к ресурсам по сетгВайловая система NTFS195Не следует путать разрешения с правами. Это совершенно разные понятия; подробнее об этом написано в подразделе «Модель безопасности Windows NT/2000/ХР». К сожалению, в технической литературе да и в обиходе часто путают эти термины. Истоком этого прежде всего являются ошибки перевода оригинальных англоязычных материалов.Разрешения NTFS служат, прежде всего, для защиты ресурсов от локальных пользователей, работающих за компьютером, на котором располагается ресурс.
Однакоих можно использовать и для удаленных пользователей, подключающихся к общей папке по сети. Очевидно, что в этом случае на пользователей действуют двамеханизма ограничения в доступе к ресурсам: сначала сетевой, а уже затем локальный, файловый. Поэтому итоговые разрешения на доступ будут определяться какминимальные из сетевых и файловых разрешений. Здесь необходимо сказать, чтоитоговые сетевые разрешения на доступ к ресурсам, которыми будет обладатьпользователь при работе в сети, вычисляются как максимум разрешений в спискеразрешений доступа, поскольку пользователь может быть членом нескольких групп,которые упомянуты в списке.
Аналогично и для разрешений NTFS: пользовательполучает максимальные разрешения, перечисленные в списке управления досту1пом, и только разрешение No Access (нет доступа) может перечеркнуть все остальные разрешения.Разрешения NTFS обеспечивают высокую избирательность защиты: для каждогофайла в папке можно установить свои разрешения. Например, одному пользователю можно позволить считывать и изменять содержимое файла, другому только считывать, третьему вообще запретить доступ. Заметим, однако, что настоятельно рекомендуется устанавливать разрешения в списках ACL, используя неучетные записи отдельных пользователей, а учетные записи групп пользователей.Итак, каждый файловый объект имеет свой список управления доступом.
Этотсписок имеет приоритет над списком управления доступом того каталога, в котором находится файловый объект. Подобно корневому каталогу файл-каталог, в отличие от простого файла, является объектом контейнерного типа, то есть он может содержать другие файловые объекты. При создании НСРОГО файлового объектаон наследует разрешения NTFS. Поэтому при копировании файловых объектовони получают разрешения доступа, совпадающие с родительскими. Однако при,перемещении файлов и каталогов в пределах одного диска списки управления доступом не меняются. Объясняется этот факт просто. Списки управления доступомявляются одним из потоков данных файлового объекта, и доступ к ним осуществляется через элемент каталога.
Поэтому изменение информации о местонахождении файла никак не должно влиять ни на один из потоков данных файла. Если жефайлы (и подкаталоги) переместить с одного диска с NTFS на другой, то на новомДиске создаются новые элементы каталогов и они должны унаследовать разрешения доступа того контейнера, в котором они создаются.