Физическая организация fat-системы

Для обеспечения доступа приложений к файлам ОС с файловой совокупностью FAT применяет следующие структуры:

  • загрузочные секторы дополнительных разделов и главного;
  • загрузочные секторы логических дисков (разделов);
  • корневой каталог;
  • область данных;
  • цилиндр для исполнения диагностических операций чтения-записи.

На дискетах, в отличие от твёрдого диска, нет загрузочных секторов главного и диагностического цилиндра и дополнительных разделов. Эти структуры создаются программой Fdisk, которая не используется для дискет, поскольку они на разделы не разбиваются. Дабы установить на один жесткий диск пара операционных совокупностей, его нужно разделить на категории. В загрузочном секторе главного раздела создается таблица перечня разделов.

Загрузочный сектор главного раздела (именуемый основной загрузочной записью – Master Boot Record – MBR) есть первым сектором на твёрдом диске (цилиндр 0, головка 0, сектор 1) и складывается из двух элементов [10]:

  • таблица главного раздела, содержащая перечень разделов (максимум четыре) и размещение загрузочных секторов соответствующих логических дисков (первая и последняя головки, первый и последний цилиндры с соответствующими значениями секторов, и количество секторов);
  • основной загрузочный код – маленькая программа, которая выполняется совокупностью BIOS. Главная функция этого кода – передача управления в раздел, что обозначен как деятельный (загрузочный).

Загрузочный сектор раздела содержит:

  • блок параметров диска, в котором содержится информация о разделе (размер, количество секторов, размер кластера, метка тома и др.);
  • загрузочный код – программу, с которой начинается процесс загрузки ОС (для Ms-Dos и Windows 9x – файл Io.sys).

Загрузочные секторы логических дисков создаются программой Format. Они похожи на загрузочные диски разделов. Но при загрузке выполняется код лишь того сектора, что находится в активном разделе.

Логический диск, отформатированный программой Fdisk, складывается из следующих областей (рис. 7.20):

  • загрузочный сектор;
  • главная FAT-таблица, содержащая данные о размещении каталогов и файлов на диске;
  • копия FAT-таблицы;
  • корневой каталог – фиксированная область (16 Кбайт для твёрдого диска), разрешающая хранить 512 записей о каталогах и файлах (любая запись складывается из 32 байтов);
  • область данных для размещения всех каталогов и файлов, не считая корневого каталога.

Первые две записи FAT зарезервированы и содержат данные о самой FAT, все остальные показывают на соответствующие кластеры диска. Индексный указатель принимает значение, характеризующее состояние связанного с ним кластера (для FAT 16):

  • кластер свободен (0000h);
  • кластер употребляется (любое значение, не считая особых);
  • последний кластер файла (FFF8h – FFFFh);
  • кластер поврежден (FFF7h);
  • резервный кластер (FFF6h).

Физическая организация fat-системы

Рис. 7.20. FAT-совокупность

Размер FAT-таблицы определяется числом кластера. Разрядность индексного указателя FAT-таблицы должна быть таковой, дабы возможно было задать большой номер кластера диска определенного количества. В соответствии с разрядностью дискового указателя существуют пара разновидностей FAT: FAT12, FAT16, FAT32 (соответственно 212, 216 и 232 кластеров). Тип применяемой FAT определяется программой Fdisk, не смотря на то, что и записываются они в ходе форматирования большого уровня программы Format. На всех дискетах используется FAT 12, на твёрдых дисках до 512 Мбайт – FAT16, на твёрдых дисках, имеющих громадную емкость при применении Windows 95 OSR2 и Windows98 – FAT 32 (по большому счету размер кластера возможно от 1 до 128 секторов либо от 512 байт до 64 Кбайт). Большой размер раздела FAT16 ограничен количеством 4 Гбайт (216 = 65536 кластеров по 64 Кбайт). Большой размер раздела FAT 32 фактически не ограничен (232 кластеров по 32 Кбайт).

За копией FAT-таблицы направляться корневой каталог – база данных, содержащая данные о записанных на диске данных. Любая запись в ней имеет длину 32 байта и содержит все данные о файле, которой располагает ОС. Формат записи приведен ниже.

Смещение Описание
Hex Dec Протяженность поля
00h 8 байт Имя файла
08h 3 байт Расширение файла
0Bh 1 байт Атрибуты файла
0Ch 10 байт Зарезервировано
16h 2 байт Время создания
18h 2 байт Дата создания
1Ah 2 байт Начальный кластер
1Ch 4 байт Размер файла в байтах

Информация о размещении файла, другими словами о размещении оставшихся кластеров, содержится в FAT-таблице. В ходе работы совокупности кластеры файла могут быть не в смежных областях, а будут чередоваться с кластерами вторых файлов. Но эту цепочку кластеров легко выделить, зная начальный кластер файлов. На рис. 7.21 продемонстрирован пример размещения двух файлов.

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

Позиция бита в шестнадцатеричном формате Значение Описание
01h Лишь чтение
02h Скрытый
04h Системный
08h Метка тома
10h Подкаталог
20h Архивный (поменянный)
40h Зарезервировано
80h Зарезервировано

Физическая организация fat-системы

Рис. 7.21. Пример размещения двух файлов

Файловые совокупности FAT 12 и FAT16 оперируют с именами файлов, составленных по схеме 8.3 (имя, расширение). В Windows 95 с возникновением 32-разрядной виртуальной FAT-VFAT (Virtual file allocation table) поддерживаются имена длиной 255 знаков (увидим, что изменился только код программы, поддерживающийFAT16, он стал 32-м). Для обеспечения обратной совместимости ОС формирует его псевдоним, удовлетворяющий стандарту 8.3. Делается это следующим образом.

  1. Первые 3 знака по окончании последней точки в долгом имени файла становятся расширением псевдонима.
  2. Первые шесть знаков долгого имени файла, за исключением пробелов, каковые игнорируются, преобразуются в знаки верхнего регистра и становятся шестью знаками стандартного имени файла. Недопустимые знаки (+ , ; = [28] ), каковые смогут употребляться в Windows 95, преобразуются в знаки подчеркивания.
  3. Добавляются знаки ~1 (седьмой и восьмой) к псевдониму имени файла.

В случае, если первые шесть знаков нескольких файлов одинаковые, то добавляются знаки ~2, ~3 и т.д.

VFAT хранит псевдонимы долгих имен в поле стандартных имен файлов записи каталога файла. Так, все версии DOS и Windows смогут получить доступ к файлу под долгим именем посредством его псевдонима. Остается неприятность: как хранить 255 знаков имени файлов 32 байт записи каталога? Разработчики файловой совокупности решили эту проблему следующим образом: были добавлены дополнительные записи каталога для хранения долгих имен файлов. Дабы прошлые предположения не повредили эти дополнительные записи каталога, VFAT устанавливает для них атрибуты, каковые нельзя использовать для простого файла: лишь для чтения, скрытый, системный и метка тома. Такие атрибуты DOS игнорирует, а следовательно, долгие имена файлов остаются нетронутыми. Подобным же образом решается неприятность долгих имен в Windows NT/2000/2003/XP, использующих для хранения имен двухбайтовый формат на любой знак – Unicode.

Как уже отмечалось, выбор типа FAT-совокупности во многом определяется емкостью твёрдого диска. При применении FAT16 нельзя создать раздел емкостью более 2-х Гбайт. Для устранения этого ограничения компания Микрософт создала FAT 32. Она трудится как FAT 16, но имеет отличие в организации хранения данных. Помимо этого, FAT 32 возможно установить посредством программы Fdisk. В первый раз FAT 32 была реализована в Windows 95 OEM Service Release 2 (OSR2). Она встроена и в Windows 98/Ме/NT/2000.

Главное преимущество FAT 32 – возможность применения 32-разрядных записей вместо 16-разрядных, что ведет к повышению кластеров (вместо 216=65536) до 268 435 456 в разделе. Это значение в Windows 95 OSR2 эквивалентно 228, а не 232, потому, что 4 бита из 32 зарезервированы для других целей.

При работе в FAT 32 размер раздела может быть около 2 Tбайт при кластере размером 8, 16 либо 32 Кбайт. Новая файловая совокупность может иметь 232 кластеров размером 512 байт, а размер единичного файла может составить 4 Гбайт. Реально FAT 32 поддерживает большой размер тома до 32 Гбайт. Это связано с тем, что в Windows 2000 это ограничение обусловлено программой Format. По большому счету максимальный том – 2 Tбайт при кластере 32 Кбайт.

Существует ответственное отличие FAT 32 от ее предшественниц – положение корневого каталога: он может размешаться в любом месте раздела и иметь любой раздел. Это снабжает динамическое изменение размера раздела. Свободные разработчики применяли это свойство. Так, компания Power-Quest создала программу Partion Magic, разрешающую переопределять разделы по окончании их создания.

Файловая совокупность FAT 32 кроме этого применяет преимущество двух копий FAT. Как и в FAT 16, в FAT 32 первая копия есть главной и иногда копирует данные в дополнительную копию FAT. При проблемах с основной копией FAT совокупности переключаются в дополнительную копию, которая делается основной.

Примечание: программа Fdisk машинально определяет размер кластера на базе выбранной файловой совокупности и размерам раздела. Но существует недокументированный параметр команды Format, разрешающий очевидно указать размер кластера: Format/z:n, где n –размер кластера в байтах, кратный 512.

Файловые операции

Комплект файловых операций

Файловая совокупность ОС обязана предоставлять пользователям комплект операций для работы с файлами, оформленный в виде системных вызовов. В разных ОС имеются разные комплекты файловых операций. Чаще всего видящимися системными вызовами для работы с файлами являются [13, 17]:

  1. Create (создание). Файл создается без данных. Данный системный вызов объявляет о появлении нового файла и разрешает установить кое-какие его атрибуты;
  2. Delete (удаление). Ненужный файл удаляется, дабы высвободить пространство на диске;
  3. Open (открытие). До применения файла его необходимо открыть. Этот вызов разрешает прочесть список и атрибуты файла дисковых адресов для стремительного доступа к содержимому файла;
  4. Close (закрытие). По окончании завершения операций с файлом его дисковые адреса и атрибуты не необходимы. Файл направляться закрыть, дабы высвободить пространство во внутренней таблице;
  5. Read (чтение). Файл читается с текущей позиции. Процесс, трудящийся с файлом, обязан указать (открыть) количество и буфер читаемых данных;
  6. Write (запись). Эти записываются в файл в текущую позицию. Если она находится в конце файла, его размер машинально возрастает. В другом случае запись производится поверх существующих данных;
  7. Append (добавление). Это усеченная форма прошлого вызова. Эти добавляются в финиш файла;
  8. Seek (поиск). Этот системный вызов устанавливает файловый указатель в определенную позицию;
  9. Get attributes (получение атрибутов). Процессам для работы с файлами не редкость нужно взять их атрибуты;
  10. Set attributes (установка атрибутов). Данный вызов разрешает установить нужные атрибуты файлу по окончании его создания;
  11. Rename (переименование). Данный системный вызов разрешает поменять имя файла. Но такое воздействие возможно выполнить копированием файла. Исходя из этого этот системный вызов не есть нужным;
  12. Execute (выполнить). Применяя данный системный вызов, файл возможно запустить на исполнение.

Разглядим примеры файловых операций в ОС Windows 2000 и UNIX. Как и в других ОС, в Windows 2000 имеется собственный комплект системных вызовов, каковые она может делать. Но корпорация Микрософт ни при каких обстоятельствах не публиковала перечень системных вызовов Windows, помимо этого, она всегда меняет их от одного выпуска к второму [17]. Вместо этого Микрософт выяснила комплект функциональных вызовов, именуемый Win 32 API (Win 32 Application Programming Interface). Эти вызовы опубликованы и абсолютно документированы. Они являются библиотечные процедуры, каковые или обращаются к системным вызовам, дабы выполнить требуемую работу, или делают ее прямо в пространстве пользователя.

Философия Win 32 API содержится в предоставлении безграничного интерфейса, с возможностью выполнить одно да и то же требование несколькими (тремя-четырьмя) методами. В ОС UNIX все системные вызовы формируют минимальный интерфейс: удаление кроме того одного из них приведет к понижению функциональности ОС.

Многие вызовы API создают объекты ядра того либо иного типа (файлы, процессы, потоки, каналы и т.д.). Любой вызов, создающий объект, возвращает вызывающему процессу итог, именуемый дескриптором (маленькое целое число). Дескриптор употребляется потом для исполнения операций с объектами. Он не может быть передан второму процессу и использован им. Но при определенных событиях дескриптор возможно дублирован и передан второму процессу защищенным методом, что предоставляет второму процессу контролируемый доступ к объекту, принадлежащему первому процессу. С каждым объектом ассоциирован дескриптор безопасности, обрисовывающий, кто и какие конкретно действия может, а какие конкретно не имеет возможности делать с данным объектом.

Главные функции Win 32 API для файлового ввода-вывода и соответствующие системные вызовы ОС UNIX приведены ниже.

Функция Win 32 API Системные вызовы UNIX Описание
CreateFile open Создать либо открыть файл; вернуть дескриптор файла
DeleteFile unlink Удалить существующий файл
CloseHandle close Закрыть файл
ReadFile read Прочесть эти из файла
WriteFile write Записать данные в файл
SetFilePointer lseek Установить указатель в файле в определенную позицию
GetFileAttributes stat Вернуть атрибуты файла
LockFile fcntl Заблокировать область файла для обеспечения обоюдного исключения
UnlockFile fcntl Отменить блокировку области файла

Подобно файловым операциям обстоит дело с операциями управления каталогами. Главные функции Win 32 API и системные вызовы UNIX для управления каталогами приведены ниже.

Функция Win 32 API Системные вызовы UNIX Описание
CreateDirectory mkdir Создать новый каталог
RemoveDirectory rmdir Удалить безлюдный каталог
FindFirstFile opendir Инициализация, дабы начать чтение записей каталога
FindNextFile readdir Прочесть следующую запись каталога
MoveFile rename Переместить файл из одного каталога в второй
SetCurrentDirectory chdir Поменять текущий рабочий каталог

Методы исполнения файловых операций

Значительно чаще с одним и тем же файлом пользователь делает несколько, а последовательность операций. Независимо от комплекта этих операций ОС нужно выполнить последовательность постоянных (универсальных) для всех операций действий.

  1. По символьному имени файла отыскать его характеристики, каковые сохраняются в файловой совокупности на диске.
  2. Скопировать характеристики в оперативную память, потому, что лишь в этом случае код программы может их применять.
  3. На основании черт файла проверить права пользователя на исполнение запрошенной операции.
  4. Очисть область памяти, отведенную под временное хранение черт файла.

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

ОС может выполнить последовательность действий над файлами двумя методами (см. рис. рис. 7.22).

  1. Для каждой операции выполняются как универсальные, так и неповторимые действия. Такая схема время от времени именуется схемой без заполнения состояния операции (stateless).
  2. Все универсальные действия выполняются в конце и начале последовательности операций, а для каждой промежуточной операции выполняются лишь неповторимые действия.

Физическая организация fat-системы

Рис. 7.22. Варианты исполнения последовательности действий над файлами

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

При втором методе в ФС вводится два особых системных вызова: open и close. Первый выполняется перед началом любой последовательности операций с файлом, а второй – по окончании завершения работы с файлом.

Главной задачей вызова open есть преобразование символьного имени файла в его неповторимое числовое имя, копирование черт файла из дисковой области в буфер оперативной памяти и проверка прав пользователя на исполнение запрошенной операции. Вызов close освобождает буфер с чертями файла совершает неосуществимым продолжение операций с файлами без его повторного открытия.

Приведем пара примеров системных вызовов для работы с файлами. Системный вызов create в ОС UNIX трудится с двумя доводами: символьным именем открываемого файла и режимом защиты. Так команда

fd = create (abc, mode);

формирует файл abc с режимом защиты, указанным в переменной mode. Биты mode определяют круг пользователей, каковые смогут получить доступ к файлам, и уровень предоставляемого им доступа. Системный вызов create не только формирует новый файл, вместе с тем открывает его для записи. Дабы последующие системные вызовы имели возможность получить доступ к файлу, успешный системный вызов create возвращает маленькое неотрицательное целое число – дескриптор файла – fd. В случае, если системный вызов выполняется с существующим файлом, протяженность этого файла значительно уменьшается до 0, а все содержимое теряется.

Дабы прочесть эти из существующего файла либо записать в него эти, файл сперва необходимо открыть посредством системного вызова open с двумя доводами: режимом открытия и символьным именем файла файла (для записи, чтения либо того т другого), к примеру

fd = open (file, how);

Системные вызовы create и open возвращают мельчайший неиспользуемый сейчас дескриптор файла. В то время, когда программа начинает исполнение стандартным образом, файлы с дескрипторами 0, 1 и 2 уже открыты для стандартного ввода, стандартного потока и стандартного вывода сообщений об неточностях.

В стандарте языка Си отсутствуют средства ввода-вывода. Все операции ввода-вывода реализуются посредством функций, находящихся в библиотеке языка, поставляемой в составе совокупности программирования Си. На обычный поток ввода ссылаются через указатель stdin, вывода – stdout, сообщений об неточностях –stderr. По умолчанию потоку ввода stdin ставится в соответствие клавиатура, а потокам stdout и stderr – экран дисплея.

Для ввода-вывода данных посредством стандартных потоков в библиотеке Си выяснены функции:

  • getchar ( )/putchar ( ) – ввод-вывод отдельного знака;
  • gets ( )/ puts ( ) – ввод-вывод строчка;
  • scanf ( )/ printf ( ) – ввод-вывод в режиме форматирования данных.

Процесс в любое время может организовать ввод данных из стандартного файла ввода, выполнить символьный вызов:

read (stdin, buffer, nbyts);

Подобно организуется вывод в обычный файл вывода

write (stdout, buffer, nbytes).

При работе в Windows 2000 посредством функции CreateFile возможно создать файл и взять дескриптор к нему. Эту же функцию направляться использовать и для открытия уже существующего файла, поскольку в Win 32 API нет особой функции File Open. Параметры функций, в большинстве случаев, бессчётны, к примеру, функция CreateFile имеет семь параметров:

  1. указатель на имя файла, что необходимо создать либо открыть;
  2. знамёна (биты), показывающие, может ли с этим файлом выполняться чтение, запись либо то и второе;
  3. знамёна, показывающие, может ли данный файл в один момент раскрываться несколькими процессами;
  4. указатель на описатель защиты, сообщение, кто может приобретать доступ к файлу;
  5. знамёна, информирующие, что делать, в случае, если файл существует либо, напротив, не существует;
  6. знамёна, управляющие архивацией, сжатием и т.д.;
  7. дескриптор файла, чьи атрибуты должны быть клонированы для нового файла,

Fd = CreateFile (data, GENERIC_READ, O, NULL, OPEN_EXSTING, O, NULL).

Контроль доступа к файлам

Файлы – один из видов разделяемых ресурсов, доступ к каким ОС обязана осуществлять контроль. Существуют и другие виды ресурсов, с которыми пользователи трудятся в режиме совместного применения: принтеры, модемы, графопостроители и т.п. Во всех этих случаях пользователи либо процессы пробуют выполнить с разделяемым ресурсом определенные операции, а ОС должны решить, имеют ли пользователи на это право. Пользователи являются субъектами доступа, а разделяемые ресурсы – объектами. Пользователь осуществляет доступ к объектам не конкретно, а c помощью прикладных процессов, каковые запускаются от его имени.

Для каждого типа объекта существует комплект операций, каковые возможно с ним делать. Совокупность контроля доступа ОС обязана предоставлять средства для задания прав пользователей по отношению к объектам дифференцированно по операциям.

В качестве субъектов доступа смогут выступать как отдельные пользователи, так и группы пользователей. Объединение пользователей с однообразными правами в задания и группу прав доступа в целом для группы есть одним из главных приемов администрирования в громадных совокупностях.

У каждого объекта доступа существует обладатель. Обладатель объекта в праве выполнить с ним каждые допустимые для данного объекта операции. Во многих ОС существует особенный пользователь – администратор superuser, что имеет все права по отношению к объектам совокупности, не обязательно являясь их обладателем. Эти права (полномочия) нужны администратору для управления политикой доступа.

Различают два главных подхода к определению прав доступа [13].

  1. Избирательный доступ – обстановка, в то время, когда обладатель объекта определяет допустимые операции с объектом. Данный подход именуется кроме этого произвольным доступом, поскольку разрешает владельцам и администратору объекта выяснить права доступа произвольным образом, по их жажде. Но администратор по умолчанию наделен всеми правами.
  2. Мандатный доступ (от mandatory – принудительный) – подход к определению прав доступа, при котором совокупность (администратор) наделяет пользователя либо группу определенными правами по отношению к каждому разделяемому ресурсу. В этом случае группы пользователей образуют строгую иерархию, причем любая несколько пользуется всеми правами группы более низкого уровня иерархии.

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

Любой пользователь (несколько) имеет символьное имя, и неповторимый числовой идентификатор. При исполнении процедуры логического входа в совокупность пользователь информирует собственный символьное имя либо пароль. Все идентификационные эти, и сведения о вхождении пользователя в группы сохраняются в особом файле (UNIX) либо базе данных (Windows NT).

Вход пользователя в совокупность порождает процесс – оболочку, что поддерживает диалог с пользователем и запускает для него другие процессы. Любой порождаемый процесс наследует идентификаторы групп и пользователя от процесса родителя.

В различных ОС для одних и тех же типов ресурсов возможно выяснен собственный перечень дифференцируемых операций доступа. Для файловых объектов данный перечень может включить операции, каковые рассмотрены выше.

Комплект файловых операций может включать всего пара укрупненных операций, к примеру, для каталогов и файлов: просматривать, писать и делать.

Вероятна комбинация двух подходов – детальный уровень и укрупненный. К примеру, в Windows NT/2000/2003 администратор трудится на укрупненном уровне, а при жажде может перейти на детальный.

В самом неспециализированном случае права доступа смогут быть обрисованы матрицей прав доступа, в которой столбцы соответствуют всем файлам совокупности, а строки – всем пользователям. На пересечении столбцов и строк указываются разрешенные операции. Но реально для десятков и тысяч тысяч файлов в совокупности пользоваться таковой матрицей некомфортно. Исходя из этого она хранится по частям, т.е. для каталога и каждого файла создается перечень управления доступом (Access Control List, ACL), в котором описываются права на исполнение групп пользователей и операций пользователей по отношению к этому файлу либо каталогу. Перечень управления доступом есть частью черт файла либо каталога и хранится на диске в соответствующей области. Не все файловые совокупности поддерживают перечни управления доступом, к примеру, FAT не поддерживает, потому, что разрабатывалась для однопрограммной, однопользовательской ОС MS-DOS.

Обобщено формат перечня управления доступом (ACL) возможно представить в виде групп идентификаторов пользователей и набора пользователей, в котором для каждого идентификатора указывается комплект разрешенных операций над объектом. Сам перечень ACL складывается из элементов управления доступом (Access Control Element, ACE), каковые соответствуют одному идентификатору. Перечень ACL с добавлением идентификатора обладателя именуют чертями безопасности.

Разглядим организацию контроля доступа в ОС Windows NT/2000/XP. Совокупность управления доступом в данной ОС отличается высокой степенью гибкости, которая достигается за счет громадного разнообразия субъектов и объектов детализации и доступа операции доступа.

Для разделяемых ресурсов в Windows XP используется неспециализированная модель объекта, которая содержит такие характеристики безопасности, как комплект допустимых операций, идентификатор обладателя, перечень управления доступом.

Проверки прав доступа для объектов любого типа выполняются централизованно посредством монитора безопасности (Security Reference Monitor), трудящегося в привилегированном режиме.

Для совокупности безопасности Windows характерно много разных встроенных (предопределенных) субъектов доступа – отдельных групп и пользователей (Administrator, System, Guest, группы Users, Administrators, Account, Operators и др.). Суть этих встроенных групп и пользователей пребывает в том, что они наделены определенными правами. Это облегчает работу администратора по созданию действенной совокупности разграничения доступа. Во-первых, благодаря тому, что нового пользователя возможно внести в какую-то группу. Во-вторых, возможно додавать (изымать) права встроенных групп. Наконец, возможно создавать новые группы с неповторимым комплектом прав.

Все объекты при создании снабжаются дескрипторами безопасности, содержащими перечень управления доступом и перечень групп и пользователей, имеющих доступ к данному объекту. Обладатель объекта, в большинстве случаев пользователь, что его создал, владеет возможностью изменять ACL объекта, дабы разрешить либо не разрешить вторым осуществлять доступ к объекту. Он может выполнить требуемую операцию с объектом, став его обладателем (такая возможность предусмотрена), а после этого как обладатель взять полный комплект разрешений. Но вернуть владение прошлому обладателю объекта администратор не имеет возможности, исходя из этого пользователь в любой момент может определить о том, что с его файлом (принтером и т.п.) трудился администратор.

В Windows NT/2000/XP администратор может руководить доступом пользователей к файлам и каталогам лишь в разделах диска, в которых установлена файловая совокупность NTFS. Разделы FAT не поддерживаются, поскольку в данной ФС у каталогов и файлов отсутствуют атрибуты для хранения перечней управления доступом.

Разрешения в Windows бывают личные (особые) и стандартные. Личные относятся к элементарным операциям над файлами и каталогами, а стандартные разрешения являются объединением нескольких личных разрешений. На рис. 7.23 и рис. 7.24 приведены шесть стандартных разрешений (элементарных операций), суть которых отличается для файлов и каталогов.

Физическая организация fat-системы

Рис. 7.23. Стандартные разрешения для каталогов

Физическая организация fat-системы

Рис. 7.24. Стандартные разрешения для файлов

На рис. 7.25 продемонстрирована возможность установки личных разрешений для файлов.

Физическая организация fat-системы

Рис. 7.25. Личные разрешения для файлов

Структура файловой системы FAT32 — Разбираемся вместе — 2 выпуск!


Интересные записи:

Понравилась статья? Поделиться с друзьями: