Как установить, скопировать, экспортировать или восстановить разрешения NTFS с помощью iCACLS?
Вы можете использовать встроенный инструмент iCACLS для управления разрешениями NTFS в Windows.
icacls.exeИнструмент командной строки позволяет получать или изменять списки контроля доступа (ACL) для файлов и папок в файловой системе NTFS. В этой статье мы рассмотрим полезные команды для управления разрешениями NTFS в Windows с помощью iCACLS.
Использование iCACLS для просмотра и установки разрешений для файлов и папок
Текущие права доступа к любому объекту на томе NTFS можно отобразить следующим образом:
icacls 'C:\Share\Veteran\'Команда вернет список пользователей и групп, которым были назначены права доступа. Разрешения обозначаются с помощью сокращений:
-
F - полный доступ
M - изменить доступ.
RX - доступ на чтение и выполнение
R - доступ только для чтения.
W - доступ только для записи.
D - удалить
Права наследования указываются перед разрешениями на доступ (права наследования применяются только к папкам):
(OI) - наследование объекта
(CI) - наследование контейнера
(IO) - только наследовать
-
(I) - наследование разрешений от родительского контейнера.
С помощью icacls вы можете изменить права доступа к папкам.
Чтобы предоставить группе «resource\mun-fs01_Auditors» разрешения на чтение и выполнение (RX) в папке:
icacls 'C:\Share\Veteran\' /grant resource\mun-fs01_Auditors:RXЧтобы удалить группу из ACL каталога:
icacls 'C:\Share\Veteran\' /remove resource\mun-fs01_AuditorsС помощью icacls вы можете включить наследование разрешений NTFS из родительской папки:
icacls 'C:\Share\Veteran\' /inheritance:eИли отключите наследование, удалив все унаследованные ACE:
icacls 'C:\Share\Veteran\' /inheritance:rВы можете использовать icacls.exe для изменения владельца файла или папки.
icacls 'C:\Share\Veteran\' /setowner resource\j.smith /T /C /L /QКак сделать резервную копию (экспортировать) разрешения NTFS для папки?
Прежде чем вносить существенные изменения в разрешения (перемещение, обновление списков управления доступом, миграция ресурсов) в папке NTFS (или общей сетевой папке), рекомендуется создать резервную копию старых разрешений. Эта копия позволит вам вернуться к исходным настройкам или хотя бы уточнить старые разрешения для конкретного файла/каталога.
Вы можете использовать инструмент icacls.exe для экспорта/импорта текущих разрешений каталога NTFS. Чтобы получить все списки ACL для определенной папки (включая подкаталоги и файлы) и экспортировать их в текстовый файл, выполните следующую команду:
icacls g:\veteran /save c:\backup\veteran_ntfs_perms.txt /t /cПримечание. Ключ /t используется для получения списков ACL для всех подкаталогов и файлов, /c позволяет игнорировать ошибки доступа. Добавив опцию /q, вы можете отключить отображение информации об успешном доступе к объектам файловой системы.
В зависимости от количества файлов и папок экспорт разрешений может занять довольно много времени. После выполнения команды будет отображена статистика количества успешных или неудачных обработок файлов.
Successfully processed 3001 files; Failed processing 0 filesОткройте файл veteran_ntfs_perms.txt в любом текстовом редакторе. Как видите, он содержит полный список файлов и папок в каталоге, и каждый элемент имеет текущие разрешения, указанные в формате SDDL (язык определения дескрипторов безопасности).
Например, текущие разрешения NTFS для корня папки следующие:
D:PAI(A;OICI;FA;;;BA)(A;OICIIO;FA;;;CO)(A;OICI;0x1200a9;;;S-1-5-21-2340243621-32346796122-2349433313-23777994)(A;OICI;0x1301bf;;;S-1-5-21-2340243621-32346796122-2349433313-23777993)(A;OICI;FA;;;SY)(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)S:AIЭта строка описывает доступ для некоторых групп или пользователей. Подробно рассматривать синтаксис SDDL мы не будем (формат SDDL кратко обсуждался в статье «Как просмотреть и изменить разрешения служб в Windows?»). Давайте сосредоточимся на небольшом фрагменте SDDL, выбрав только один объект:
(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)A - тип доступа (Разрешить)
OICI - флаг наследования (OBJECT INHERIT+ CONTAINER INHERIT)
FA - тип разрешения (SDDL_FILE_ALL - разрешено все)
S-1-5-21-2340243621-32346796122-2349433313-24109193 - SID учетной записи или группы домена, для которой установлены разрешения. Чтобы преобразовать SID в имя учетной записи или группы, используйте следующую команду PowerShell:
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2340243621-32346796122-2349433313-24109193")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.ValueИли используйте одну из команд:
Get-ADUser -Identity SID или
Get-ADGroup -Identity SIDТаким образом, вы обнаружили, что пользователь corp\dvivar имеет права полного доступа к этому каталогу.
Как восстановить разрешения NTFS с помощью iCacls?
Вы можете восстановить разрешения NTFS для папки, используя ранее созданный файл ветеран_ntfs_perms.txt. Чтобы установить разрешения NTFS для объектов в каталоге в соответствии со значениями в файле резервной копии ACL, выполните следующую команду:
icacls g:\ /restore c:\backup\veteran_ntfs_perms.txt /t /cПримечание. Обратите внимание, что при импорте разрешений из файла вместо имени папки следует указывать путь к родительскому каталогу.
После восстановления всех разрешений также будет отображена статистика по количеству обработанных файлов.
Обратите внимание, что резервный файл ACL содержит относительные, а не абсолютные пути к файлам. Это означает, что вы можете восстановить разрешения для папки даже после ее перемещения на другой диск/каталог.
Сброс разрешений NTFS к значениям по умолчанию
Вы можете использовать инструмент icacls для сброса разрешений папки (а также вложенных файлов и подкаталогов).
icacls C:\share\veteran /reset /T /Q /CЭта команда включит унаследованные разрешения NTFS для указанного объекта и удалит любые другие списки ACL.
Копирование разрешений NTFS из одной папки в другую
Вы можете использовать текстовый файл с резервной копией ACL для копирования разрешений NTFS из одного каталога в другой.
Сначала создайте резервную копию разрешений NTFS исходной папки:
icacls 'C:\Share\Veteran' /save C:\PS\save_ntfs_perms.txt /cА затем примените сохраненные списки ACL к целевой папке:
icacls D:\Share /restore C:\PS\save_ntfs_perms.txt /cЭто будет работать, если исходная и целевая папки имеют одинаковые имена. Что делать, если имя целевой папки отличается? Например, вам необходимо скопировать разрешения NTFS в папку D:\PublicDOCS.
Самый простой способ — открыть файл save_ntfs_perms.txt в блокноте и отредактировать имя папки. Используйте функцию «Заменить», чтобы заменить имя Ветеран на PublicDOCS.
Затем импортируйте разрешения NTFS из файла и примените их к целевой папке:
icacls D:\ /restore C:\PS\save_ntfs_perms.txt /cЕще проще скопировать разрешения NTFS из одной папки в другую с помощью PowerShell:
Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'









