Icacls exe что это windows 10

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

Команда iCACLS позволяет отображать или изменять списки управления доступом ( A ccess C ontrol L ists (ACLs) ) к файлам и папкам файловой системы. Утилита iCACLS.EXE является дальнейшим усовершенствованием утилиты управления доступом CACLS.EXE.

Управление доступом к объектам файловой системы NTFS реализуется с использованием специальных записей в таблице MFT (Master File Table). Каждому файлу или папке файловой системы NTFS соответствует запись в таблице MFT, содержащая специальный дескриптор безопасности SD (Security Descriptor). Каждый дескриптор безопасности содержит два списка контроля доступа:

System Access-Control List (SACL) — системный список управления доступом .

Discretionary Access-Control List (DACL) — список управления избирательным доступом.

SACL управляется системой и используется для обеспечения аудита попыток доступа к объектам файловой системы, определяя условия при которых генерируется события безопасности. В операционных системах Windows Vista и более поздних, SACL используется еще и для реализации механизма защиты системы с использованием уровней целостности ( Integrity Level, IL).

DACL — это собственно и есть список управления доступом ACL в обычном понимании. Именно DACL формирует правила, определяющие, кому разрешить доступ к объекту, а кому — запретить.

Каждый список контроля доступа (ACL) представляет собой набор элементов (записей) контроля доступа — Access Control Entries , или ACE ) . Записи ACE бывают двух типов (разрешающий и запрещающий доступ), и содержит три поля:

SID пользователя или группы, к которому применяется данное правило

Вид доступа , на которое распространяется данное правило

Тип ACE — разрешающий или запрещающий.

SID — Security ID – уникальный идентификатор, который присваивается каждому пользователю или группе пользователей в момент их создания. Посмотреть примеры SID можно , например с помощью команды WHOAMI /ALL . Как видим, система управления доступом к объектам NTFS оперирует не именами, а идентификаторами SID. Поэтому, например нельзя восстановить доступ к файлам и папкам, существовавший для удаленного из системы пользователя, создав его заново с тем же самым именем – он получит новый SID и правила записей ACE, применяемые к старому идентификатору SID, выполняться не будут.

При определении результатов запросов на доступ к объектам файловой системы NTFS применимы следующие правила:

Если в дескрипторе безопасности отсутствует DACL , то объект считается незащищенным, т.е. все имеют к нему неограниченный доступ.

Если DACL существует, но не содержит ни одного элемента ACE, то доступ к объекту закрыт для всех.

Для того чтобы изменить DACL объекта, пользователь (процесс) должен обладать правом записи в DACL (WRITE_DAC — WDAC). Право записи может быть разрешено или запрещено, с помощью утилиты icalc.exe , но даже если установлен запрет, все равно разрешение на запись имеется хотя бы у одного пользователя владельца файла или папки (поле Owner в дескрипторе безопасности), так как владелец всегда имеет право изменять DAC.

Варианты применения команды iCACLS:

ICACLS имя /save ACL_файл [/T] [/C] [/L] [/Q] — сохранение DACL для файлов и папок, соответствующих имени, в ACL-файл для последующего использования с командой /restore . Обратите внимание, что метки SACL, владельца и целостности не сохраняются.

ICACLS каталог [/substitute SidOld SidNew [. ]] /restore ACL_файл [/C] [/L] [/Q] — применение ранее сохраненных DACL к файлам в каталоге.

ICACLS имя /setowner пользователь [/T] [/C] [/L] [/Q] — смена владельца всех соответствующих имен. Этот параметр не предназначен для принудительной смены владельца; используйте для этой цели программу takeown.exe .

ICACLS имя /findsid Sid [/T] [/C] [/L] [/Q] — поиск всех соответствующих имен, содержащих ACL с явным упоминанием ИД безопасности.

Читайте также:  Linux print all routes

ICACLS имя /verify [/T] [/C] [/L] [/Q] — поиск всех файлов с неканоническими ACL или длинами, не соответствующими количеству ACE.

ICACLS имя /reset [/T] [/C] [/L] [/Q] — замена ACL на унаследованные по умолчанию для всех соответствующих файлов.

ICACLS имя [/grant[:r] Sid:perm[. ]] [/deny Sid:perm [. ]] [/remove[:g|:d]] Sid[. ]] [/T] [/C] [/L] [/Q] [/setintegritylevel Level:policy[. ]]

/grant[:r] Sid:perm — предоставление указанных прав доступа пользователя. С параметром :r эти разрешения заменяют любые ранее предоставленные явные разрешения. Без параметра :r разрешения добавляются к любым ранее предоставленным явным разрешениям.

/deny Sid:perm — явный отзыв указанных прав доступа пользователя. Добавляется ACE явного отзыва для заявленных разрешений с удалением этих же разрешений в любом явном предоставлении.

/remove[:[g|:d]] Sid — удаление всех вхождений ИД безопасности в ACL. С параметром :g удаляются все вхождения предоставленных прав в этом ИД безопасности. С параметром :d удаляются все вхождения отозванных прав в этом ИД безопасности.

/setintegritylevel [(CI)(OI)]уровень — явное добавление ACE уровня целостности ко всем соответствующим файлам. Уровень задается одним из следующих значений:

Уровню могут предшествовать параметры наследования для ACE целостности, применяемые только к каталогам.

Механизм целостности Windows Vista и более поздних версий ОС, расширяет архитектуру безопасности путём определения нового типа элемента списка доступа ACE для представления уровня целостности в дескрипторе безопасности объекта (файла, папки). Новый ACE представляет уровень целостности объекта. Он содержится в системном ACL (SACL), который ранее используемом только для аудита. Уровень целостности также назначается токену безопасности в момент его инициализации. Уровень целостности в токене безопасности представляет уровень целостности (Integrity Level, IL) пользователя (процесса). Уровень целостности в токене сравнивается с уровнем целостности в дескрипторе объекта когда монитор безопасности выполняет проверку доступа. Система ограничивает права доступа в зависимости от того выше или ниже уровень целостности субъекта по отношению к объекту, а также в зависимости от флагов политики целостности в соответствующей ACE объекта. Уровни целостности (IL) представлены идентификаторами безопасности (SID), которые представляют также пользователей и группы, уровень которых закодирован в относительном идентификаторе (RID) идентификатора SID. Наиболее распространенные уровни целостности:

SID = S-1-16-4096 RID=0x1000 — уровень Low (Низкий обязательный уровень)

SID= S-1-16-8192 RID=0x2000 – уровень Medium (Средний обязательный уровень)

SID= S-1-16-12288 RID=0x3000 – уровень High (Высокий обязательный уровень)

SID= S-1-16-16384 RID=0x4000 – уровень системы (Обязательный уровень системы).

e — включение наследования

d — отключение наследования и копирование ACE

r — удаление всех унаследованных ACE

ИД безопасности могут быть в числовой форме (SID), либо в форме понятного имени (username). Если задана числовая форма, добавьте * в начало ИД безопасности, например — *S-1-1-0 . Параметры командной строки iCACLS:

/T — операция выполняется для всех соответствующих файлов и каталогов, расположенных в заданном каталоге.

/C — выполнение операции продолжается при любых файловых ошибках. Сообщения об ошибках по-прежнему выводятся на экран.

/L — операция выполняется над самой символьной ссылкой, а не над ее целевым объектом.

/Q — утилита ICACLS подавляет сообщения об успешном выполнении.

Утилита ICACLS сохраняет канонический порядок записей ACE:

разрешение — это маска разрешения, которая может задаваться в одной из двух форм:

последовательность простых прав:

N — доступ отсутствует

F — полный доступ

M — доступ на изменение

RX — доступ на чтение и выполнение

R — доступ только на чтение

W — доступ только на запись

D — доступ на удаление

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

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

Читайте также:  Кнопка меню для загрузки windows

Права наследования могут предшествовать любой форме и применяются только к каталогам:

(OI) — наследование объектами

(CI) — наследование контейнерами

(IO) — только наследование

(NP) — запрет на распространение наследования

(I) — наследование разрешений от родительского контейнера

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

icacls — запуск без ключей используется для получения краткой справки по использованию команды.

icacls C:\Users — отобразить список управления доступом для папки C:\Users. Пример отображаемой информации:

C:\Users NT AUTHORITY\система:(OI)(CI)(F)
BUILTIN\Администраторы:(OI)(CI)(F)
BUILTIN\Пользователи:(RX)
BUILTIN\Пользователи:(OI)(CI)(IO)(GR,GE)
Все:(RX)
Все:(OI)(CI)(IO)(GR,GE)

Успешно обработано 1 файлов; не удалось обработать 0 файлов

icacls c:\windows\* /save D:\win7.acl /T — сохранение ACL для всех файлов в каталоге c:\windows и его подкаталогах в ACL-файл D:\win7.acl . Сохраненные списки ACL позволят восстановить управление доступом к файлам и каталогам в исходное состояние, поэтому, прежде чем выполнять какие-либо изменения, желательно иметь файл сохраненных списков ACL.

Пример данных сохраненных списков доступа ACL:

В тех случаях, когда при выполнении команды iCACLS возникает ошибка, вызванная отказом в доступе к обрабатываемому объекту, можно продолжить выполнение команды, если задан параметр /C :

icacls «C:\System Volume Information\*» /save D:\SVI-C.acl /T /C — сохранение списков управления доступом ACL для всех файлов и подкаталогов каталога C:\System Volume Information с продолжением обработки в случае возникновения ошибки. По результатам обработки отображается сообщение о количестве успешно, и не успешно, обработанных файлов.

Для восстановления доступа к файлам и папкам используется параметр /restore :

icacls c:\windows\ /restore D:\win7.acl — восстановление списков контроля доступа к файлам и папкам каталога c:\windows из ранее сохраненного ACL-файла D:\win7.acl .

Утилита iCACLS для управления NTFS доступом к файлам и папкам

Одной из типовых задач администратора Windows при настройке доступа пользователей – управление NTFS разрешениями на папки и файлы файловой системы. Для управления NTFS разрешениями можно использовать графический интерфейс системы (вкладка Безопасность/Security в свойствах папки или файла), или встроенную утилиту командной строки iCACLS. В этой статье мы рассмотрим примеру использовании команды iCACLS для просмотра и управления разрешениями на папки и файлы.

Утилита iCACLS позволяет отображать или изменять списки управления доступом (Access Control Lists (ACLs) к файлам и папкам файловой системы. Предшественником у утилиты iCACLS.EXE является команда CACLS.EXE (доступна в Windows XP).

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

Данная команда вернет список всех пользователей и групп пользователей, которым назначены разрешения на данную папку. Попробуем разобраться в синтаксисе разрешений, которые вернула команда iCACLS.

c:\PS BUILTIN\Администраторы:(I)(OI)(CI)(F)
NT AUTHORITY\СИСТЕМА:(I)(OI)(CI)(F)
BUILTIN\Пользователи:(I)(OI)(CI)(RX)
NT AUTHORITY\Прошедшие проверку:(I)(M)
NT AUTHORITY\Прошедшие проверку:(I)(OI)(CI)(IO)(M)

Успешно обработано 1 файлов; не удалось обработать 0 файлов

Напротив каждой группы и пользователя указан уровень доступа. Права доступа указываются с помощью сокращений. Рассмотрим разрешения для группы BUILTIN\Администраторы.

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

Читайте также:  Персонализация для windows starter

Это означает, что у данной группы есть права на запись, изменение данных в данном каталоге и на изменения NTFS разрешений. Данные права наследуются на все дочерние объекты в этом каталоге.

Ниже представлен полный список разрешений, которые можно устанавливать с помощью утилиты icacls.

Права наследования:

(OI) — object inherit
(CI) — container inherit
(IO) — inherit only
(NP) — don’t propagate inherit
(I) — Permission inherited from parent container

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

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

Детальные разрешения:

DE — Delete
RC — read control
WDAC — write DAC
WO — write owner
S — synchronize
AS — access system security
MA — maximum allowed
GR — generic read
GW — generic write
GE — generic execute
GA — generic all
RD — read data/list directory
WD — write data/add file
AD — append data/add subdirectory
REA — read extended attributes
WEA — write extended attributes
X — execute/traverse
DC — delete child
RA — read attributes
WA — write attributes

С помощью утилиты icacls вы можете сохранить текущие списки доступа к объекту в файл, а затем применить сохраненный список к этому же или другим объектам (своеобразный способ создания резервной копии текущего списка доступа — ACL).

Чтобы выгрузить текущие ACL папки C:\PS и сохранить их в текстовый файл export_ps_acl.txt, выполните команду:

icacls C:\PS\* /save c:\backup\export_ps_acl.txt /t

Данная команда сохраняет ACLs не только на сам каталог, но и на все вложенные папки и файлы. Полученный текстовый файл можно открыть с помощью блокнота или любого текстового редактора.

Чтобы применить сохраненные списки доступа (восстановить разрешения на каталог и все вложенные объекты), выполните команду:

icacls C:\PS /restore :\backup\export_ps_acl.txt

Таким образом процесс переноса прав доступа с одной папки на другую становится намного легче.

С помощью команды icacls вы можете изменить списки доступа к папке. Например, вы хотите предоставить пользователю aivanov право на редактирование содержимого папки. Выполните команду:

icacls C:\PS /grant aivanov:M

Удалить все назначенные разрешения для учетной записи пользователя aivanov можно с помощью команды:

icacls C:\PS /remove aivanov

Вы можете запретить пользователю или группе пользователей доступ к файлу или папке так:

icacls c:\ps /deny «MSKManagers:(CI)(M)»

Имейте в виду, что запрещающие правил имеют больший приоритете, чем разрешающие.

С помощью команды icacls вы можете изменить владельца каталог или папки, например:

icacls c:\ps\secret.docx /setowner aivanov /T /C /L /Q

Теперь разберемся, что это за параметры используются в каждой команде.

  • /Q – сообщение об успешном выполнении команды не выводится;
  • /L – команда выполняется непосредственно над символической ссылкой, а не конкретным объектом;
  • /C – выполнение команды будет продолжаться несмотря на файловые ошибки; при этом сообщения об ошибках все равно будут отображаться;
  • /T – команда используется для всех файлов и каталогов, которые расположены в указанном каталоге;

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

icacls c:\ps\* /setowner aivanov /T /C /L /Q

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

icacls C:\ps /T /Q /C /RESET

После выполнения команды все текущие разрешения на папку будут сброшены и заменены на разрешения, наследуемые с вышестоящего объекта (каталога).

Оцените статью