iCACLS - управление доступом к файлам и папкам.

Команда iCACLS позволяет отображать или изменять списки управления доступом к файлам и папкам файловой системы в Windows 7 и выше.

Чтобы просмотреть действующие разрешения на конкретную папку (например, C:\Windows), в cmd и выполните команду:

icacls c:\Windows

Напротив каждой группы и пользователя указан уровень доступа:

(OI) - Object inherit – права наследуются на нижестоящие объекты
(CI) - Container inherit – наследование каталога
(F) – Full control– полный доступ к папке
(I) — Inherit права наследованы с вышестоящего каталога

Список основных прав доступа:

D — право удаления
F — полный доступ
N — нет доступа
M — доступ на изменение
RX — доступ на чтение и запуск
R — доступ только на чтение
W — доступ только на запись

Список отдельных прав через запятую в скобках:

DE - удаление
RC - чтение
WDAC - запись DAC
WO - смена владельца
S - синхронизация
AS - доступ к безопасности системы
MA - максимально возможный
GR - общее чтение
GW - общая запись
GE - общее выполнение
GA - все общие
RD - чтение данных, перечисление содержимого папки
WD - запись данных, добавление файлов
AD - добавление данных и вложенных каталогов
REA - чтение дополнительных атрибутов
WEA - запись дополнительных атрибутов
X - выполнение файлов и обзор папок
DC - удаление вложенных объектов
RA - чтение атрибутов
WA - запись атрибутов

Команды и ключи:

/save - сохранение DACL для файлов и папок, соответствующих имени, в ACL-файл для последующего использования с командой /restore. Обратите внимание, что метки SACL, владельца и целостности не сохраняются.
/restore - применение ранее сохраненных DACL к файлам в каталоге.
/setowner - смена владельца всех соответствующих имен. Этот параметр не предназначен для принудительной смены владельца; используйте для этой цели программу takeown.exe.
/findsid - поиск всех соответствующих имен, содержащих ACL с явным упоминанием ИД безопасности.
/verify - поиск всех файлов с неканоническими ACL или длинами, не соответствующими количеству ACE.
/reset - замена ACL на унаследованные по умолчанию для всех соответствующих файлов.
/grant — предоставление указанных прав доступа пользователя.
/deny — явный отзыв указанных прав доступа пользователя.
/remove — удаление всех вхождений ИД безопасности в ACL.
/setintegritylevel  — явное добавление ACE уровня целостности ко всем соответствующим файлам.

/T - операция выполняется для всех соответствующих файлов и каталогов, расположенных в заданном каталоге.
/C - выполнение операции продолжается при любых файловых ошибках. Сообщения об ошибках по-прежнему выводятся на экран.
/L - операция выполняется над самой символьной ссылкой, а не над ее целевым объектом.
/Q - утилита ICACLS подавляет сообщения об успешном выполнении.

Пример команд icacls:

Вы можете изменить владельца всех файлов в каталоге:

icacls c:\Windows\* /setowner ivanov /T /C /L /Q

Также при помощи icacls и takeown можно сбросить текущие разрешения на объекты:

takeown /f "C:\Windows" /r /d y
icacls C:\Windows /T /Q /C /RESET

Предоставить пользователю mihail полный доступ к каталогу F:\test\123

icacls "F:\test\123" /grant mihail:(OI)(CI)F /T

Или только на чтение:

icacls "F:\test\123" /grant mihail:(OI)(CI)RX /T

Для смены владельца используем команду:

icacls "F:\test\123" /setowner Administrators /T /C