- Команда CACLS
- Команда iCACLS – управление доступом к файлам и папкам.
- Information Security Squad
- Использование iCACLS для вывода списка прав и управления файлами
- Использование команды iCACLS
- Настройки наследования iCACLS:
- Список основных прав доступа:
- Подробные права:
- Использовать iCACLS для предоставления разрешений или изменения списков доступа для папки
- Примеры
Команда 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, выполняться не будут.
При определении результатов запросов на доступ к объектам файловой системы 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. Наиболее распространенные уровни целостности:
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 для вывода списка прав и управления файлами
Использование 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 вы можете сбросить текущие разрешения на объектах файловой системы: