Команда CACLS

Команда CACLS используется для просмотра и изменения списков управления доступом (Access Control List - ACL) к файлам. CACLS считается устаревшей, и вместо нее рекомендуется использовать команду ICACLS.

Формат командной строки:

CACLS имя_файла [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G имя:доступ]
        [/R имя [...]] [/P имя:доступ [...]] [/D имя [...]]

Параметры:

    имя_файла     Просмотр списков управления доступом.
    /T            Изменение списков управления доступом для указанных файлов
                  в текущем каталоге и вложенных каталогах.
    /L            Работа с самой символической ссылкой, а не с объектом.
    /M            Изменение ACL томов, подключенных к каталогу.
    /S            Отображение строки SDDL для DACL.
    /S:SDDL       Замена ACL на указанные в строке SDDL
                  (не используется с ключами /E, /G, /R, /P и /D).
    /E            Изменение списка управления доступом вместо его замены.
    /C            Продолжение при ошибках отказа в доступе.
    /G имя:доступ Разрешения для указанных пользователей.
                  Доступ:  R  - чтение
                           W  - запись
                           C  - изменение (запись)
                           F  - полный доступ
    /R имя       Отзыв разрешений для пользователя (только вместе с /E).
    /P имя:доступ  Замена разрешений указанного пользователя.
                 Доступ:  N  - нет
                          R  - чтение
                          W  - запись
                          C  - изменение (запись)
                          F  - полный доступ
    /D имя       Запрет на доступ пользователя.
Для выбора нескольких файлов используются подстановочные знаки.
  В команде можно указать несколько пользователей.

Для расшифровки результатов, полученных при выполнении команды CACLS используются следующие сокращения:

    CI - наследование контейнерами.
         таблица управления доступом (ACE) наследуется каталогами.
    OI - наследование объектами.
         ACE наследуется файлами.
    IO - только наследование.
         ACE не применяется к текущему файлу или каталогу.
    ID - наследование.
         ACE наследуется от ACL родительского каталога.

Возможны комбинации:

(IO)(CI)  Права доступа применяются для данной папки, ее подпапок и файлов
(OI)(CI)(IO) Права доступа применяются олько для подпапок и файлов
(CI)(IO) Права доступа применяются только для подпапок
(OI)(IO) Права доступа применяются только для файлов


Примеры использования:

CACLS C:\ - отобразить список доступа к корневому каталогу диска C: . В результате выполнения команды будет выполнен вывод списка разрешений:

C:\
BUILTIN\Администраторы:F
    BUILTIN\Администраторы:(OI)(CI)(IO)F
    NT AUTHORITY\система:F
    NT AUTHORITY\система:(OI)(CI)(IO)F
    BUILTIN\Пользователи:(OI)(CI)R
    NT AUTHORITY\Прошедшие проверку:(OI)(CI)(IO)C
    NT AUTHORITY\Прошедшие проверку:(специальный доступ:)
                                    FILE_APPEND_DATA

CACLS C:\boot.ini /G user1:W - разрешить пользователю user1 запись в файл C:\boot.ini

CACLS C:\USERS /G user1:F - разрешить полный доступ пользователю user1 к каталогу C:\USERS

CACLS "C:\System Volume Information" /E /G User3:F - изменить список управления доступом ( ключ /E ), предоставив пользователю User3 полный доступ к каталогу C:\System Volume Information . Имя каталога, содержащее пробелы, заключается в двойные кавычки.

CACLS "C:\System Volume Information" /E /R User3 - отозвать полномочия пользователя User3, т.е. удалить запись управления доступом к указанному каталогу для пользователя User3

CACLS "C:\System Volume Information" /D User3 - запретить пользователю User3 доступ к каталогу C:\System Volume Information . В отличие от предыдущего примера, запись для пользователя User3 из таблицы ACE не удаляется, а выполняется ее добавление или изменение с признаками прав (OI)(CI)N (Право доступа имеет значение N для данного каталога, всех его подкаталогов и файлов).