Защита файлов и каталогов с помощью NTFS. Права доступа. Разрешения NTFS. Кто управляет DACL и SACL, страница 10

Практика применения программы CACLS

*  Программа CACLS не дает пользователю возможности применять ключ /у для автоматического ввода положительного ответа на запрос ARE YOU SURE? Y/N, возникающий каждый раз, когда существующие разрешения заменяются на новые (т. е. когда не применяется ключ /е). Поэтому при работе с программой CACLS в пакетных файлах следует применять команду echo, чтобы обозначить символ Y как символ ввода на запрос подтверждения. Команда в этом случае будет выглядеть так:

ECHO у| CACLS <имя_файла|каталога> /д <пользователь>:<разрешение>

Пробел между символами Y и | вводить не следует. Если это сделать, программа CACLS не сможет изменить разрешения.

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

При любом изменении разрешений NTFS с помощью программы CACLS с ключами /g, /p или /r следует быть очень внимательным, поскольку если для файла или каталога уже установлены разрешения, а ключ /е не используется, то все они удаляются, и будут выставлены только разрешения, указанные в команде CACLS.

*  Режим редактирования (ключ /е) позволяет быстро и эффективно решать с помощью программы CACLS такие задачи по управлению разрешениями, которые посредством программ NT Explorer и File Manager либо вообще не решаются, либо решаются с трудом.

Например, у Вас есть папка C:\STUDENTS на разделе с NTFS, в которой содержатся личные папки и файлы всех Ваших студентов. Для этих файлов и папок установлены разрешения NTFS, обеспечивающие полный доступ к ним только членов группы Administrators и владельцев этих папок. Как обеспечить доступ к этим папкам и файлам членам группы Teachers? Сделать это с помощью программы NT Explorer можно только последовательным изменением разрешений для каждой папки, вложенной в папку STUDENTS: щелкнуть ее правой кнопкой мыши, выбрать Properties, Security, Permissions, нажать кнопку Add, выбрать в списке группу Teachers, установить тип доступа. А если этих папок несколько сотен? Б-р-р-р!.. А в программе CACLS достаточно ввести одну-единственную команду в командной строке:

CACLS \STUDENTS\*.* /t /e /g teachers:r

Еще пример: Вы хотите защитить от несанкционированного удаления или изменения пользователями все исполняемые файлы или файлы динамических библиотек, не затрагивая при этом разрешений, установленных на файлы других типов. NT Explorer предложит Вам тот же утомительный путь: придется опять последовательно просматривать все папки, выбирать в каждой из них ЕХЕ-файлы, бесконечно щелкать правой кнопкой мыши, Properties,Permissionsи т. д. CACLS решает эту задачу одной командой. Находясь в корневом каталоге нужного диска, наберите в командной строке:

CACLS *.exe /t /e /p users:г и нажмите клавишу Enter. Все остальное программа CACLS сделает сама.

Программа CACLS позволяет не только изменять, но и просто просматривать разрешения, установленные для файла или каталога. Рассмотрим, например, результат выполнения команды CACLS для папки \TEST-PERM (рис. 3-2), в которую были установлены разрешения для групп:

УчетнаязаписьРазрешения

Guests                                     List (RX) (Not Specified)

Users                                       Read (RX) (RX)

Server Operators                     Add&Read (RWX) (RX)

Administrators                         Full Control (All) (All)

Эта выдача становится понятной, если вспомнить, что каждая запись в списке контроля доступа помечается соответствующим флагом (см. раздел, посвященной правилам наследования разрешений NTFS). Здесь флаги (OI) и (IO) — относятся к разрешениям для файлов, создаваемых в данном каталоге или копируемых в него. Флаг OI (OBJECT_INHERIT) означает, что соответствующая запись наследуется простыми объектами типа, создаваемыми в объекте-контейнере, к которому относится эта запись (проще говоря, файлами, создаваемыми в указанной папке). Флаг IO (INHERIT_ONLY) говорит о том, что запись не относится к самому объекту-контейнеру, а только «наследуется» вновь создаваемыми в нем объектам. Обычно в выдаче присутствуют флаги обоих этих типов.