Windows acl командная строка

Команда CACLS

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

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

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

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

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 для данного каталога, всех его подкаталогов и файлов).

Команда 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, выполняться не будут.

Читайте также:  Консоль sccm для windows 10

При определении результатов запросов на доступ к объектам файловой системы 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 с явным упоминанием ИД безопасности.

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. Наиболее распространенные уровни целостности:

Читайте также:  Не удается активировать вашу копию windows проверьте подключение

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 — запись атрибутов

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

(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 .

Information Security Squad

stay tune stay secure

  • Home
  • 2018
  • Август
  • 17
  • Использование iCACLS для вывода списка прав и управления файлами
Читайте также:  Диск mac os для virtualbox

Использование iCACLS для вывода списка прав и управления файлами

Одной из типичных задач для администратора Windows является управление разрешениями NTFS для папок и файлов в файловой системе.

Чтобы управлять разрешениями NTFS, вы можете использовать графический интерфейс Проводника (вкладка «Безопасность» в свойствах папки или файла) или встроенную утилиту командной строки iCACLS.

В этой статье мы рассмотрим пример использования команды iCACLS для просмотра и управления разрешениями на папки и файлы.

Использование команды iCACLS

Команда iCACLS позволяет отображать или изменять списки управления доступом (ACL) для файлов и папок в файловой системе.

Предшественником утилиты iCACLS.EXE является команда CACLS.EXE (используется в Windows XP).

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

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

Попробуем понять синтаксис разрешений, возвращаемых командой iCACLS:

Права доступа указываются с использованием сокращений.

Рассмотрим разрешения для пользователя CORP \ someusername.

Для этого пользователя назначаются следующие разрешения:

(OI) – наследование объекта
(CI) – наследование контейнера
(M) – доступ на изменение

Это означает, что у этого пользователя есть права на запись и изменение данных в этом каталоге.

Эти права наследуются ко всем дочерним объектам в этом каталоге.

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

Настройки наследования iCACLS:

(OI) – наследование объекта
(CI) – наследование контейнера
(IO) – наследовать только
(NP) – не распространять наследование
(I) – разрешение, унаследованное от родительского контейнера

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

  • 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 – атрибуты записи

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

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

Эта команда сохраняет ACL не только о самом каталоге, но и о всех подпапках и файлах.

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

Чтобы применить ACL выполните команду:

Использовать iCACLS для предоставления разрешений или изменения списков доступа для папки

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

С помощью команды icacls вы можете изменить списки доступа для этой папки.

Примеры

Например, вы хотите предоставить пользователю John разрешения на редактирование содержимого папки C: \ PS.

Вы можете удалить все права Джона, используя команду:

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

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

Используя команду icacls, вы можете изменить владельца каталога или папки, например:

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

Также с помощью icacls вы можете сбросить текущие разрешения на объектах файловой системы:

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