Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

conspectVM2

.pdf
Скачиваний:
12
Добавлен:
10.02.2016
Размер:
2.51 Mб
Скачать

Create Files — разрешает (или запрещает) создание файлов в папке (применимо только к папкам);

Write Data — разрешает (или запрещает) внесение изменений в файл и замену имеющегося содержимого (применимо только к файлам).

Q Create Folders/Append Data (Создание папок/Дозапись данных):

Create Folders — разрешает (или запрещает) создание папок в папке (применимо только к папкам);

Append Data — разрешает (или запрещает) внесение изменений в конец файла, но не изменение, удаление и замену имеющихся данных (применимо только к файлам).

Q Write Attributes (Запись атрибутов). Разрешает (илизапрещает) смену атрибутов файла или папки, таких как «только для чтения» или «скрытый». Атрибуты определяются файловой системой NTFS.

Q Write Extended Attributes (Запись дополнительных атрибутов). Разрешает (или запрещает) смену дополнительных атрибутов файла или папки. Дополнительные атрибуты определяются программами и зависят от них.

Q Delete Subfolders and Files (Удаление подпапок и файлов). Разрешает (или запрещает) удаление вложенных папок и файлов даже при отсутствии разрешения Delete.

Q Delete (Удаление). Разрешает (или запрещает) удаление файла или папки. При отсутствии этого разрешения требуемый объект (файл или папку) все же можно удалить при наличии разрешения Delete Subfolders and Files для родительской папки.

a Read Permissions (Чтение разрешений). Разрешает или запрещает чтение разрешений на доступ к файлу или папке, таких как Full Control, Read и Write.

Change Permissions (Смена разрешений). Разрешает или запрещает чтение разрешений на доступ к файлу или папке, таких как Full Control, Read и Write.

Take Ownership (Смена владельца). Разрешает или запрещает возможность стать владельцем файла или папки. Владелец файла или папки всегда может изменить разрешения на доступ к ним независимо от любых разрешений, защищающих файл или папку.

Из перечисленных выше «индивидуальных» разрешений формируются так называемые основные разрешения. Они являются аналогом стандартных разрешении

в NTFS4. Принципиальное отличие между стандартными и индивидуальными разрешениями в NTFS4 и NTFS5 заключается в том, что теперь имеется 6 основных

разрешений на каталог и 5 основных разрешений на файл. Причем каждое из этих разрешений может быть в явном виде разрешено или запрещено. То есть каждое основное разрешение пользователь может разрешить (allow) или запретить (deny)- Если разрешение не отмечено как разрешенное или запрещенное, то считается, что оно не запрещено. Таким образом, конкретное разрешение может быть задано тремя способами: разрешено (в явном виде), не запрещено, запрещено. Напомним, что итоговые разрешения для конкретного пользователя вычисляются как сумма всех файловая система NTFS 205

оазрешений по записям АСЕ, образующим список DACL. Например, если в списке DACL у пользователя имеется разрешение на запись, а членам группы, в которую он входит, присвоено разрешение на чтение, то этот пользователь будет иметь иТоговое разрешение и на чтение, и на запись.

Запрет имеет большую силу, нежели явное разрешение. Другими словами, если встречается АСЕ с явным запретом на некоторое разрешение для конкретного пользователя или группы, в которую он входит, то это разрешение всегда будет запрещено для данного пользователя и его группы, даже если в остальных записях данное разрешение будет помечено как разрешенное.

Если вас не устраивают основные разрешения, то можно сформировать специальные разрешения как конкретную комбинацию «индивидуальных» разрешений. Для

этого необходимо щелкнуть на кнопке Advanced (Дополнительно). При этом открывается окно управления разрешениями, в котором они перечислены. В этом окне

есть кнопки Add (Добавить), Change (Изменить) и Delete (удалить), которые позволяют добавлять, изменять или удалять выбранные разрешения.

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

Внесите в разрешения на доступ к родительскому объекту изменения, которые будут унаследованы данным объектом.

Явно разрешите (если оно было помечено как запрещенное) или запретите (если оно было помечено как разрешенное) данное унаследованное разрешение.

а Снимите флажок Inherit from parent the permission entries that apply to child objects. Include these with entries explicity defined here (Переносить наследуемые от родительского объекта разрешения на этот объект). В появившемся диалоговом окне будет предложено выбрать одну из трех альтернатив: скопировать разрешения

родительского объекта (к ним можно будет впоследствии добавить новые), удалить разрешения и сформировать их заново или ничего не трогать и вернуться к исходному состоянию разрешений. После снятия флажка можно изменять список разрешений: изменять сами разрешения, удалять пользователей или

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

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

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

Ри назначении разрешений для папок, в которых расположены приложения или Н Н ы е справочного характера, то есть практически неизменяемые при рядовой

раооте пользователей, следует заменить стандартное разрешение Full Contorol (пол206 Глава 6. Файловые системщ

ный доступ) для группы Everyone (все) на разрешение Read & Execute (чтение и выполнение).

Это позволит предотвратить случайное удаление файлов или заражение их вирусами. Тем пользователям, которые ответственны за обновление хранящихся

в папке файлов, можно дать разрешения Change (изменение), Read & Execute (чтение и выполнение), Read (чтение) и Write (запись). Имея их, они смогут выполнять порученную им работу, но не смогут изменять разрешения. Право на изменение разрешений следует оставлять за членами группы Администраторы.

В качестве примера управления разрешениями NTFS при работе в Windows 2000/ ХР рассмотрим следующую несложную задачу. Пусть требуется создать папку Контрольные работы, в которой члены группы Студенты должны иметь возможность размещать свои файлы и при необходимости даже исправлять их, но чтобы они не имели возможности читать чужие контрольные работы и удалять файлы. Для группы Преподаватели должно быть разрешение на чтение этих файлов. Администраторы должны иметь разрешение Full Control (Полный доступ), чтобы иметь возможность

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

1. Создаем папку Контрольные работы. Переходим на вкладку Security (Безопасность) в окне Properties (Свойства папки).

2. Снимаем в левом нижнем углу этого окна флажок Inherit from parent the permission entries that apply to child objects (Переносить наследуемые от родительского объекта разрешения на этот объект) и копируем разрешения родительского каталога.

3. Щелкаем на кнопке Add (Добавить), в открывшемся окне находим группу Администраторы,

щелкаем на кнопке Add (Добавить), после чего щелкаем на кнопке 0К

в окне добавления. В окне Security (Безопасность) для каждой новой учетной

записи по умолчанию устанавливается разрешение Read & Execute (Чтение и выполнение), которое предполагает наличие разрешений List (Список содержимого

папки) и Read (Чтение).

4.Устанавливаем для группы Администраторы разрешение Full Control (Полный доступ), для чего достаточно установить соответствующий флажок. Флажки для остальных разрешений установятся автоматически.

5.Добавляем группу Преподаватели. В окне безопасности для них автоматически устанавливается разрешение Read & Execute (Чтение и выполнение), что нас вполне устраивает.

6.Добавляем группу Студенты. В окне безопасности снимаем флажки для разрешений Read & Execute (Чтение и выполнение) и Read (Чтение), оставив разрешение

на получение списка содержимого папки.

7.Поскольку члены группы Студенты должны иметь возможность поместить в папку Контрольные работы свои файлы, в окне безопасности устанавливаем флажок

для разрешения Write (Запись).

8.Чтобы студенты могли читать и исправлять только свои файлы, добавляем специальную учетную запись СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ. Поля с разрешениями для нее окажутся пустыми, однако это не должно нас смущать. Если щелкнуть на кноп контрольные вопросы и задачи 207

ке Advanced (Дополнительно), то в открывшемся окне Advanced security settings for

Контрольные работы (Параметры управления доступом для Контрольные работы) мы увидим, что для учетной записи СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ имеется разрешение Full Control (Полный доступ).

9Для того чтобы запретить студентам удалять файлы (и папки) в папке Контрольные работы, необходимо в окне Advanced security settings for Контрольные работы (Параметры управления доступом для Контрольные работы) выделить группу Студенты. Далее, щелкнув на кнопке Edit (Показать/Изменить), в открывшемся окне специальных разрешений установить флажок в столбце Deny (Запретить) для разрешений, связанных с удалением.

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

вещей, то, щелкнув на кнопке Edit (Показать/Изменить), в открывшемся окне Permission Entry for Контрольные работы (Элемент разрешения для Контрольные работы)

можно было бы с помощью переключателейApply onto (Применять) указать, к каким объектам должны относиться установленные разрешения.

*В качестве дополнительной рекомендации можно посоветовать при просмотре существующих разрешений NTFS на папки не закрывать окно безопасности

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

__

12.1 Интерфейс файловой системы.

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

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

создание файловой системы на диске

необходимые операции для работы с каталогами

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

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

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

12.2 Общая структура файловой системы

Система хранения данных на дисках может быть структурирована следующим образом (см.

рис. 12.1).

Нижний уровень - оборудование. Это в первую очередь, магнитные диски с подвижными головками - основные устройства внешней памяти, представляющие собой пакеты магнитных пластин (поверхностей), между которыми на одном рычаге двигается пакет магнитных головок. Шаг движения пакета головок является дискретным и каждому положению пакета головок логически соответствует цилиндр магнитного диска. Цилиндры делятся на дорожки (треки), а каждая дорожка размечается на одно и то же количество блоков (секторов), таким образом, что в каждый блок можно записать по максимуму одно и то же число байтов. Следовательно, для произведения обмена с магнитным диском на уровне аппаратуры нужно указать номер цилиндра, номер поверхности, номер блока на соответствующей дорожке и число байтов, которое нужно записать или прочитать от начала этого блока. Таким образом, диски могут быть разбиты на блоки фиксированного размера, и можно непосредственно получить доступ к любому блоку (организовать прямой доступ к файлам).

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

физическими блоками диска, которые характеризуются адресом, например, диск 2, цилиндр 75, сектор 11. Файловая система имеет дело с логическими блоками, каждый из которых имеет номер (от 0 или 1 до N). Размер этих логических блоков файла совпадает или кратен размеру физического блока диска и может быть задан равным размеру страницы виртуальной памяти, поддерживаемой аппаратурой компьютера совместно с операционной системой.

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

Рис. 12.1 Блок схема файловой системы

В современных ОС далее принято разбивать диски на логические диски (это также низкоуровневая операция), иногда называемые разделами (partitions). Бывает,

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

Стандартный запрос на открытие (open) или создание (creat) файла поступает от прикладной программы к логической подсистеме. Логическая подсистема, используя структуру директорий, проверяет права доступа и вызывает базовую подсистему для получения доступа к блокам файла. После этого файл считается открытым, содержится в таблице открытых файлов, прикладная программа получает в свое распоряжение дескриптор (или handle в системах Microsoft) этого файла. Дескриптор файла является ссылкой на файл в таблице открытых файлов и используется в запросах прикладной программы на чтениезапись из этого файла. Запись в таблице открытых файлов указывает через систему аллокации блоков диска на блоки данного файла. Если к моменту открытия файл уже используется другим процессом, то есть содержится в таблице открытых файлов, то, после проверки прав доступа к файлу может быть организован совместный доступ. При этом новому процессу также возвращается дескриптор - ссылка на файл в таблице открытых файлов. Далее в тексте подробно проанализирована работа наиболее важных системных вызовов.

12.3 Структура файловой системы на диске.

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

12.3.1 Методы выделения дискового пространства

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

Выделение непрерывной последовательностью блоков

Простейший способ - хранить каждый файл, как непрерывную последовательность блоков диска. При непрерывном расположении файл характеризуется адресом и длиной (в блоках). Файл, стартующий с блока b, занимает затем блоки b+1, b+2, ... b+n-1.

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

Непрерывное выделение используется в ОС IBM/CMS, в ОС RSX-11 (для выполняемых файлов) и в ряде других.

Основная проблема, вследствие чего этот способ мало распространен - трудно найти место для нового файла. В процессе эксплуатации диск представляет собой некоторую совокупность свободных и занятых фрагментов. Проблема непрерывного расположения может рассматриваться как частный случай более общей проблемы выделения n блоков из списка свободных дыр. Наиболее распространенные стратегии решения этой проблемы - first fit, best fit и worst fit (ср. с проблемой выделения памяти). Таким образом, метод страдает от внешней фрагментации, в зависимости от размера диска и среднего размера файла, в большей или меньшей степени.

Кроме того, непрерывное распределение внешней памяти не применимо до тех пор, пока не известен максимальный размер файла. Иногда размер выходного файла оценить легко (при копировании). Чаще, однако, это трудно сделать. Если места не хватило, то пользовательская программа может быть приостановлена, предполагая выделение дополнительного места для файла при последующем рестарте. Некоторые ОС используют модифицированный вариант непрерывного выделения основные блоки файла + резервные

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

Связный список

Метод распределения блоков в виде связного списка решает основную проблему непрерывного выделения, то есть устраняет внешнюю фрагментацию. Каждый файл - связный список блоков диска. Запись в директории содержит указатель на первый и последний блоки файла. Каждый блок содержит указатель на следующий блок.

Рис. 12.2 Хранение файла в виде связного списка дисковых блоков

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

Связное выделение имеет, однако, несколько существенных недостатков.

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

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

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

Поэтому метод связного списка обычно не используется в чистом виде.

Связный список с использованием индекса

Недостатки предыдущего способа могут быть устранены путем изъятия указателя из каждого дискового блока и помещения его в индексную таблицу в памяти, которая называется FAT (file allocation table). Этой схемы придерживаются многие ОС (MS-DOS, OS/2, MS Windows и

др.)

Рис. 12.3. Метод связного списка, с использованием таблицы в оперативной памяти

По-прежнему, существенно, что запись в директории содержит только ссылку на первый блок и

т.о. можно локализовать файл независимо от его размера.

Минусом этой схемы может быть необходимость поддержки в памяти этой довольно большой таблицы.

Индексные узлы

Четвертый и последний метод выяснения принадлежности блока к файлу - связать с каждым файлом маленькую таблицу, называемую индексным узлом (i-node),

которая перечисляет атрибуты и дисковые адреса блоков файла (см. рис 12.4).

Каждый файл имеет свой собственный индексный блок, который содержит адреса блоков данных. Запись в директории, относящаяся к файлу, содержит адрес

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

Индексирование поддерживает прямой доступ к файлу, без ущерба от внешней фрагментации.

Рис. 12.4 Структура индексного узла

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

Эту схему использует Unix (а также файловые системы HPFS, NTFS и др.). Такой подход позволяет при фиксированном, относительно небольшом размере индексного узла, поддерживать работу с файлами, размер которых может меняться от нескольких байт

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

12.3.2 Управление свободным и занятым дисковым пространством.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]