Понимание разрешений Windows NTFS

Опубликовано: 12 Апреля, 2023


Понимание разрешений Windows NTFS


Несмотря на то, что разрешения Windows существуют уже давно, я до сих пор сталкиваюсь с опытными сетевыми администраторами, которые не знают о новых изменениях, появившихся в Windows 2000 так давно. Когда Microsoft выпустила Windows 2000, они выпустили новую версию NTFS, которая имела версию 5. Новые разрешения NTFS были, по сути, тем же логическим контролем, что и более старая версия, которая была доступна в Windows NT, однако были некоторые радикальные и существенные изменения, которые произошло, чтобы контролировать, как разрешения наследуются и настраиваются для каждого файла и папки. Поскольку разрешения NTFS доступны для каждого файла, папки, ключа реестра, принтера и объекта Active Directory, важно понимать новые методы и функции, доступные после установки Windows 2000, Windows XP или Windows 2003 Server для управления Ресурсы.


Стандартные разрешения


Стандартные разрешения — это те разрешения, которые контролируют широкий спектр подробных разрешений. Самое популярное и печально известное стандартное разрешение — «Полный доступ». Этого хотят все, но на самом деле мало кто должен получить. Полный доступ позволяет пользователю, которому предоставлен этот набор разрешений, делать практически все с объектом, с которым связаны разрешения. Другие стандартные разрешения включают следующее:


Файлы:



Изменить
Читать и выполнять
Читать
Напишите


Папки имеют те же стандартные разрешения, что и файлы, за исключением одного дополнительного стандартного разрешения «Список содержимого папки».


Когда вы смотрите на ключи реестра, принтеры и объекты Active Directory, вы видите совершенно другой набор стандартных разрешений для этих объектов. На вкладке безопасности каждого объекта будут перечислены стандартные разрешения, как показано на рис. 1 для типичной организационной единицы (OU) в Active Directory.



Изображение 25739
Рисунок 1: Стандартные разрешения для OU в Active Directory


Расширенные разрешения


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



Полный контроль
Перейти к папке/выполнить файл
Список папок/чтение данных
Чтение атрибутов
Чтение расширенных атрибутов
Создание файлов/запись данных
Создать папки/Добавить данные
Запись атрибутов
Запись расширенных атрибутов
Удалить
Разрешения на чтение
Изменить разрешения
Взять на себя ответственность


Например, определенные расширенные разрешения, которые используются для создания стандартного разрешения «Чтение», включают:



Список папок/чтение данных
Чтение атрибутов
Чтение расширенных атрибутов
Разрешения на чтение


Когда вы оцениваете расширенные разрешения для папки, они идентичны разрешениям для файла. Однако, когда вы исследуете расширенные разрешения принтера или ключа реестра, они совершенно разные. Если вы хотите увидеть силу и контроль, которые NTFS 5.0 предоставляет для управления доступом, лучше всего исследовать разрешения OU в Active Directory. На первый взгляд, я подсчитал, что у вас есть более 10 000 отдельных расширенных разрешений, которые вы можете установить для OU, как вы можете видеть частичный список на рис. 2.



Изображение 25740
Рисунок 2: Расширенные разрешения для OU в Active Directory


Унаследованные и явные разрешения


Существует два варианта разрешений, которые вы увидите для любой записи (пользователя, компьютера или группы), указанной в списке управления доступом (ACL). Если мы посмотрим на корневой диск C:, вы можете добавить или изменить разрешения для любой записи в ACL. Если вы создадите новую папку в C:, скажем, новую папку с именем Data (C:Data), вы не сможете изменить разрешения для любых существующих записей. Это связано с тем, что разрешения от C: автоматически наследуются для всех подпапок и файлов. Если вы не хотите, чтобы разрешения от C: наследуются от C:Data, но все же хотите, чтобы они наследуются от других подпапок ниже C:, вы должны настроить папку C:Data, чтобы прекратить наследование, сняв флажок из «Наследовать от родителя записи разрешений, которые применяются к дочерним объектам. Включите их с записями, явно определенными здесь», как показано на рисунке 3.



Изображение 25741
Рисунок 3. Вы можете управлять унаследованными разрешениями для любой папки или файла


На любом уровне структуры ресурсов вы всегда можете добавить новые записи в ACL. Эти записи, особенно для целевого ресурса, называются явными разрешениями, поскольку они настраиваются непосредственно на ресурсе. Если для вложенных папок и файлов включено наследование по умолчанию, эти явные разрешения будут наследовать последующие ресурсы, как исходные разрешения от C: до C:Data. Разницу между унаследованными разрешениями и явными разрешениями легко определить по галочке на разрешениях для записи. Если флажок не отображается серым цветом, разрешения являются явными.


Разрешить или запретить разрешения


При установлении разрешений необходимо указать, должна ли запись иметь доступ (Разрешить) или нет (Запретить) к ресурсу. Затем локальный орган безопасности (LSASS) контролирует доступ к ресурсу на основе идентификатора безопасности (SID), который вы поместили в ACL, и идентификатора безопасности, размещенного на маркере безопасности, который выдается пользователю при входе в систему. Если SID, связанный с пользователем, находится в ACL, LSASS должен определить, установлен ли для доступа параметр Разрешить или Запретить. Разрешения Разрешить и Запретить наследуются по всей структуре, как описано в разделе о наследовании выше.


Вы получите предупреждения от редактора ACL при создании записей Deny, как показано на рисунке 4.



Изображение 25742
Рисунок 4: Запрещение записей в ACL приведет к тому, что система предупредит вас об ограниченном доступе, который вы предоставляете


Не принято настраивать ресурсы с разрешениями «Запретить» из-за особенностей оценки разрешений. Чаще всего пользователя или группу исключают из ACL, вместо того чтобы настраивать их так, чтобы они имели явные разрешения «Запретить». Тот факт, что SID пользователя или группы отсутствует в ACL, будет иметь тот же результат «Нет доступа» к ресурсу без необходимости настраивать какие-либо специальные записи в ACL. Только в редких случаях, когда пользователю или группе следует явно отказать в доступе, вы настраиваете разрешения «Запретить». Отказ в доступе к ресурсам путем исключения из списка управления доступом проще в устранении неполадок, управлении и настройке.


Приоритет разрешений


Я постоянно слышу от студентов и других сетевых администраторов (даже диалоговое окно на рис. 4), что разрешения «Запретить» имеют приоритет над разрешениями «Разрешить». К сожалению, это не всегда так. Чтобы подтвердить мою точку зрения, давайте рассмотрим сценарий, который вы тоже можете создать, чтобы доказать, что разрешения «Запретить» не всегда имеют приоритет над разрешениями «Разрешить».


В нашем сценарии мы рассмотрим папку C:DataHR, которая содержит как общедоступные, так и частные файлы. Мы разрешили папке C:DataHR наследовать разрешения от C:Data, которые включают только основные разрешения от корневой папки. Мы также включили группу HR в ACL, предоставив Группе разрешения Allow-Read & Execute. Последняя явная запись в ACL предназначена для группы, не относящейся к HR, которой предоставляется полный контроль Deny-Full.


Под папкой HR находятся два файла: Public.doc и Private.doc. Общая папка допускает обычное наследование разрешений, поэтому в ACL не добавляются специальные разрешения. Тем не менее, частный файл имеет некоторые явные разрешения, добавленные в ACL. Так как исполнительная группа должна иметь возможность читать содержимое личной папки, эта группа добавляется явно с разрешением «Разрешить чтение и выполнение». Результат этой настройки показан на рис. 5, на котором ясно видно, что разрешение «Разрешить» для группы «Руководители» имеет более высокий приоритет, чем разрешение «Запретить», связанное с группой, не относящейся к персоналу. Поскольку каждый руководитель включен в обе группы, вы можете видеть, что это тот случай, когда разрешения «Разрешить» имеют приоритет над разрешениями «Запретить».



Изображение 25743
Рисунок 5. Разрешающие разрешения могут иметь приоритет над разрешениями «Запретить».


Сценарий доказывает наличие иерархии разрешений для ресурсов NTFS 5.0. Иерархию приоритета разрешений можно обобщить следующим образом, при этом разрешения с более высоким приоритетом перечислены вверху списка:



Явный отказ
Явное разрешение
Унаследованный запрет
Унаследованное разрешение


Резюме


Разрешения почти одинаковы от NTFS 4.0 в Windows NT до NTFS 5.0 в Windows 2000/XP/2003. Одно из основных отличий заключается в способе, которым разрешения наследуются вниз по структуре с унаследованными и явными разрешениями. Раньше считалось, что если в ACL было разрешение «Запретить», оно всегда оценивалось первым, а затем следовали разрешения «Разрешить». Теперь иерархия разрешений должна быть оценена с учетом не только запрета и разрешения, но и того, задано ли разрешение явно или унаследовано от родительского ресурса.