
- •23 Лекция 04. Файловые системы
- •Функции файловой системы и иерархия данных
- •Файловая система fat
- •Структура загрузочной записи dos
- •Файловые системы vfat и fat32
- •Ограничения доступа к файлам и каталогам
- •Расширенная функциональность
- •Поддержка дисков большого объема
- •Структура тома с файловой системой ntfs
- •Разрешения ntfs
- •Разрешения ntfs в Windows 2000/хр
Разрешения ntfs
Разрешения NTFS (NTFS permissions) — это набор специальных расширенных атрибутов файла или каталога (папки), заданных для ограничения доступа пользователей к этим объектам. Они имеются только на томах, где установлена файловая система NTFS. Разрешения обеспечивают гибкую защиту, так как их можно применять и к каталогам, и к отдельным файлам; они распространяются как на локальных пользователей (работающих на компьютерах, где находятся защищенные папки и файлы), так и на пользователей, подключающихся к ресурсам по сети.
Не следует путать разрешения с правами. Это совершенно разные понятия; подробнее об этом написано в подразделе «Модель безопасности Windows NT/2000/ ХР». К сожалению, в технической литературе да и в обиходе часто путают эти термины. Истоком этого прежде всего являются ошибки перевода оригинальных англоязычных материалов.
Разрешения NTFS служат, прежде всего, для защиты ресурсов от локальных пользователей, работающих за компьютером, на котором располагается ресурс. Однако их можно использовать и для удаленных пользователей, подключающихся к общей папке по сети. Очевидно, что в этом случае па пользователей действуют два механизма ограничения в доступе к ресурсам: сначала сетевой, а уже затем локальный, файловый. Поэтому итоговые разрешения на доступ будут определяться как минимальные из сетевых и файловых разрешений. Здесь необходимо сказать, что итоговые сетевые разрешения на доступ к ресурсам, которыми будет обладать пользователь при работе в сети, вычисляются как максимум разрешений в списке разрешений доступа, поскольку пользователь может быть членом нескольких групп, которые упомянуты в списке. Аналогично и для разрешений NTFS: пользователь получает максимальные разрешения, перечисленные в списке управления доступом, и только разрешение No Access (нет доступа)' может перечеркнуть все остальные разрешения.
Разрешения NTFS обеспечивают высокую избирательность защиты: для каждого слайда в папке можно установить свои разрешения. Например, одному пользователю можно позволить считывать и изменять содержимое файла, другому только считывать, третьему вообще запретить доступ. Заметим, однако, что настоятельно рекомендуется устанавливать разрешения в списках ACL, используя не учетные записи отдельных пользователей, а учетные записи групп пользователей.
Итак, каждый файловый объект имеет свой список управления доступом. Этот список имеет приоритет над списком управления доступом того каталога, в котором находится файловый объект. Подобно корневому каталогу файл-каталог, в отличие от простого файла, является объектом контейнерного типа, то есть он может содержать другие файловые объекты. При создании порого файлового объекта он наследует разрешения NTFS. Поэтому при копировании файловых объектов они получают разрешения доступа, совпадающие с родительскими. Однако при перемещении файлов и каталогов в пределах одного диска списки управления доступом не меняются. Объясняется этот факт просто. Списки управления доступом являются одним из потоков данных файлового объекта, и доступ к ним осуществляется через элемент каталога. Поэтому изменение информации о местонахождении файла никак не должно влиять ни на один из потоков данных файла. Если же файлы (и подкаталоги) переместить с одного диска с NTFS на другой, то на новом диске создаются новые элементы каталогов и они должны унаследовать разрешения доступа того контейнера, в котором они создаются. Это очень важное обстоятельство, и при работе с разрешениями NTFS не следует о нем забывать.
Мы уже упоминали про списки ACL. Они могут быть у многих объектов. В NTFS у каждого файлового объекта на самом деле имеется два списка. Первый называется DACL (Discretionary ACL— дискреционный список управления доступом). Именно этот список описывает ограничения на доступ к файловому объекту, перечисляя группы и пользователей и указывая те операции, которые разрешены и запрещены. Этот список может изменить любой пользователь, имеющий разрешение на изменение разрешений (change permissions) для данного файлового объекта. Такое разрешение обычно обозначается буквой Р (от permissions — разрешения).
Второй список называется SACL (System ACL— системный список управления доступом). Этот список предназначен для аудита, и его могут составлять и редактировать только администраторы системы. Изначально списки SACL пусты, но их можно сформировать. В зависимости от того, успех или отказ в той или иной операции над файловым объектом необходимо проконтролировать, администратор формирует список SACL. Элементами такого списка являются записи типа:
SID - разрешение - успех/отказ
Здесь аббревиатура SID означает Security Identifier (идентификатор безопасности). Напомним, что во многих операционных системах для аутентификации и авторизации пользователей используются учетные записи (см. главы 1 и 11). Учетные записи бывают групповыми и пользовательскими. В системах класса Windows NT (2000/ХР) каждой учетной записи поставлен в однозначное соответствие ее идентификатор (в данном случае — SID).
Обрабатываться элементы списка SACL будут только в том случае, если в системе включен аудит на доступ к файловым объектам. Если в системе разрешен аудит файловых операций, то операционная система при их выполнении сравнивает записи р SACL с запросом и с записями в списке DACL и фиксирует в журнале безопасности соответствующие события.
Нас, прежде всего, должны интересовать списки DACL, которые и определяют разрешения на доступ к файлам и каталогам.
Каждый файловый объект имеет так называемую маску доступа (access mask). Маска доступа включает стандартные (standard), специфичные (specific) и родовые (generic) права доступа. Мы называем их здесь правами, чтобы отличать от тех разрешений, которые перечисляются в пользовательском интерфейсе,
- Стандартные права доступа определяют операции, которые являются общими для всех защищенных объектов. Право Read_Control позволяет прочитать информацию из дескриптора безопасности объекта. Право Write_DAC дает возможность изменить дискреционный список прав доступа. Право Write_0wner позволяет записать (изменить) владельца объекта. Право Synchronize дает возможность использовать объект для синхронизации. Наконец, есть право Delete, которое позволяет удалить объект.
- Специфичные права доступа указывают основные права, характерные для файловых объектов. Так, например, специфичные права ReacLData, Write_Data и Append_Data позволяют прочитать данные, записать информацию и, соответственно, добавить данные к файлу. Права Read_Attributes, Write_Attributes
- Read_EA, Write_EA позволяют, соответственно, прочитать или записать атрибуты или расширенные атрибуты файла или каталога. Наконец, такое специфичное право доступа, как Execute, позволяет запустить файл на выполнение.
- Родовые права доступа используются системой; они определяют комбинации стандартных и специфичных прав. Например, родовое право доступа Generic_Read, примененное к файлу, включает в себя следующие специфичные и стандартные права: Read_Control, File_Read_Data, FHe_Read_Attributes, File_Read_EA, Synchronize.
На основе рассмотренных выше прав доступа, которые используются при программировании, для пользователей, работающих с файлами, создан механизм разрешений. Дело в том, что управлять доступом пользователей к файлам и каталогам на основе маски доступа, то есть путем указания соответствующих битов, неудобно. Поэтому для практического администрирования применяются разрешения NTFS, которые позволяют скрыть от пользователя низкоуровневый механизм прав доступа.
Поскольку операционные системы Windows 2000/ХР нынче становятся основными для персональных компьютеров, а в дисциплинах учебного плана многие очень важные вопросы, касающиеся практической работы в этих системах, к сожалению, не изучаются, мы изложим не только основные теоретические вопросы работы с разрешениями NTFS, но и осветим некоторые детали интерфейса.
Итак, разрешения NTFS по-разному представлены в операционных системах Windows NT 4.0 и семействе систем Windows 2000/ХР, Отличия эти, прежде всего, касаются интерфейса, то есть программа Проводник (Explorer) по-разному отображает те разрешения, которые на самом деле присвоены файловому объекту в виде разрешений доступа и обрабатываются на программном уровне. Разрешения в Windows 2000/ХР ближе к тем специфичным, стандартным и родовым правам доступа, о которых мы говорили выше, однако для управления доступом к файлам они не так удобны, как разрешения Windows NT 4.0.
Для начала рассмотрим механизм разрешений NTFS для систем Windows NT 4.0. Во многих отношениях он является более простым и, соответственно, более понятным.