Команда iCACLS – управление доступом к файлам и папкам.Команда iCACLS позволяет отображать или изменять списки управления доступом (Access Control Lists (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 - Security ID – уникальный идентификатор, который присваивается каждому пользователю или группе пользователей в момент их создания. Посмотреть примеры SID можно , например с помощью команды WHOAMI /ALL. Как видим, система управления доступом к объектам NTFS оперирует не именами, а идентификаторами SID. Поэтому, например нельзя восстановить доступ к файлам и папкам, существовавший для удаленного из системы пользователя, создав его заново с тем же самым именем – он получит новый SID и правила записей ACE, применяемые к старому идентификатору SID, выполняться не будут. При определении результатов запросов на доступ к объектам файловой системы NTFS применимы следующие правила: Если в дескрипторе безопасности отсутствует DACL , то объект считается незащищенным, т.е. все имеют к нему неограниченный доступ. Если DACL существует, но не содержит ни одного элемента ACE, то доступ к объекту закрыт для всех. Для того чтобы изменить DACL объекта, пользователь (процесс) должен обладать правом записи в DACL (WRITE_DAC - WDAC). Право записи может быть разрешено или запрещено, с помощью утилиты icalc.exe, но даже если установлен запрет, все равно разрешение на запись имеется хотя бы у одного пользователя владельца файла или папки (поле Owner в дескрипторе безопасности), так как владелец всегда имеет право изменять DAC. Варианты применения команды iCACLS: /grant[:r] Sid:perm — предоставление указанных прав доступа пользователя. С параметром :r эти разрешения заменяют любые ранее предоставленные явные разрешения. Без параметра :r разрешения добавляются к любым ранее предоставленным явным разрешениям. /deny Sid:perm — явный отзыв указанных прав доступа пользователя. Добавляется ACE явного отзыва для заявленных разрешений с удалением этих же разрешений в любом явном предоставлении. /remove[:[g|:d]] Sid — удаление всех вхождений ИД безопасности в ACL. С параметром :g удаляются все вхождения предоставленных прав в этом ИД безопасности. С параметром :d удаляются все вхождения отозванных прав в этом ИД безопасности. /setintegritylevel [(CI)(OI)]уровень — явное добавление ACE уровня целостности ко всем соответствующим файлам. Уровень задается одним из следующих значений: L[ow]: низкий M[edium]: средний H[igh]: высокий Уровню могут предшествовать параметры наследования для 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 – уровень системы (Обязательный уровень системы). /inheritance:e|d|r 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: acpimof.dll D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;0x1200a9;;;BU) addins D:PAI(A;;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;CIIO;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;0x1301bf;;;SY)(A;OICIIO;GA;;;SY)(A;;0x1301bf;;;BA)(A;OICIIO;GA;;;BA)(A;;0x1200a9;;;BU)(A;OICIIO;GXGR;;;BU)(A;OICIIO;GA;;;CO) AppCompat D:AI(A;ID;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;CIIOID;GA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;OICIIOID;GA;;;CO) . . . В тех случаях, когда при выполнении команды 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 C:\Users\user1\tmp\Myfile.doc /grant boss:(D,WDAC) - предоставление пользователю boss разрешений на удаление и запись DAC для файла C:\Users\user1\tmp\Myfile.doc. icacls C:\Users\user1\tmp\Myfile.doc /grant *S-1-1-0:(D,WDAC) - предоставление пользователю с ИД безопасности S-1-1-0 (группа ”Все”) разрешений на удаление и запись DAC для файла C:\Users\user1\tmp\Myfile.doc . icacls C:\Users\user1\tmp\Myfile.doc /grant boss:F - предоставление пользователю boss полного доступа к файлу C:\Users\user1\tmp\Myfile.doc. |
|
|