Как установить, скопировать, экспортировать или восстановить разрешения NTFS с помощью iCACLS?

Вы можете использовать встроенный iCACLS инструмент для управления разрешениями NTFS в Windows. Сайт icacls.exe инструмент командной строки позволяет получать или изменять списки контроля доступа (ACL) для файлов и папок в файловой системе NTFS. В этой статье мы рассмотрим полезные команды для управления разрешениями NTFS в Windows с помощью iCACLS.

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

Текущие разрешения доступа к любому объекту на томе NTFS можно отобразить следующим образом:

icacls 'C:\Share\Veteran\'

список текущих разрешений на папки с помощью icacls.exeсписок текущих разрешений папок с помощью icacls.exe

Команда выдает список пользователей и групп, которым были назначены разрешения на доступ. Разрешения указываются с помощью аббревиатур:

  • 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

предоставление разрешений ntfs на папку через командную строкупредоставление прав ntfs на папку через командную строку

Чтобы удалить группу из ACL каталога:

icacls 'C:\Share\Veteran\' /remove resource\mun-fs01_Auditors

С помощью icacls можно включить наследование разрешений NTFS от родительской папки:

icacls 'C:\Share\Veteran\' /inheritance:e

icacls установить параметры наследования папокicacls установить параметры наследования папок

Или отключите наследование, удалив все наследуемые ACE:

icacls 'C:\Share\Veteran\' /inheritance:r

Вы можете использовать icacls.exe, чтобы изменить право собственности на файл или папку

icacls 'C:\Share\Veteran\' /setowner resource\j.smith /T /C /L /Q

смена владельца файла или папки с помощью icacls.exeполучить право собственности на файл или папку с помощью icacls.exe

Как создать резервную копию (экспорт) разрешений NTFS папки?

Прежде чем вносить существенные изменения в разрешения (перемещение, обновление ACL, перенос ресурсов) в папке NTFS (или общей сетевой папке), рекомендуется создать резервную копию старых разрешений. Эта копия позволит вам вернуться к исходным настройкам или, по крайней мере, уточнить старые разрешения для конкретного файла/каталога.

Вы можете использовать инструмент icacls.exe для экспорта/импорта текущих разрешений каталогов NTFS. Чтобы получить все ACL для определенной папки (включая подкаталоги и файлы) и экспортировать их в текстовый файл, выполните следующую команду:

icacls g:\veteran /save c:\backup\veteran_ntfs_perms.txt /t /c

Примечание. /t Ключ используется для получения ACL для всех подкаталогов и файлов, /c позволяет игнорировать ошибки доступа. Добавив /q можно отключить отображение информации об успешном доступе к объектам файловой системы.

icacls сохранить разрешение ntfs на все файлы в папкеicacls сохранить разрешение ntfs на все файлы в папке

В зависимости от количества файлов и папок экспорт разрешений может занять достаточно много времени. После выполнения команды будет выведена статистика по количеству успешных или неудачных обработок файлов.

Successfully processed 3001 files; Failed processing 0 files

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

Открыть файл veteran_ntfs_perms.txt с помощью любого текстового редактора. Как видите, он содержит полный список файлов и папок в каталоге, и каждый элемент имеет текущие разрешения, указанные в SDDL (Security Descriptor Definition Language) формат.

Разрешения файлов ntfs в формате SDDLразрешения файлов ntfs в формате SDDL

Например, текущие разрешения NTFS для папки root выглядят следующим образом:

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

получить имя пользователя из sidполучить имя пользователя из sid

Или воспользуйтесь одной из команд:
Get-ADUser -Identity SID
или
Get-ADGroup -Identity SID

Таким образом, вы обнаружили, что пользователь corp\dvivar имеет права полного контроля на этот каталог.

Как восстановить права NTFS с помощью iCacls?

Вы можете восстановить NTFS-разрешения на папку, используя ранее созданный файл veteran_ntfs_perms.txt. Чтобы установить NTFS-разрешения для объектов в каталоге в соответствии со значениями в резервном файле ACL, выполните эту команду:

icacls g:\ /restore c:\backup\veteran_ntfs_perms.txt /t /c

Примечание. Обратите внимание, что при импорте разрешений из файла вместо имени папки следует указывать путь к родительскому каталогу.

После того как все разрешения будут восстановлены, также будет выведена статистика по количеству обработанных файлов.

восстановление разрешений ntfs с помощью icaclsвосстановление разрешений ntfs с помощью icacls

Обратите внимание, что резервный файл ACL содержит относительные, а не абсолютные пути к файлам. Это означает, что вы можете восстановить права на папку даже после ее перемещения на другой диск/директорию.

Сброс разрешений NTFS на значения по умолчанию

Вы можете использовать инструмент icacls для сброса разрешений папок (а также вложенных файлов и подкаталогов).

icacls C:\share\veteran /reset /T /Q /C

icacls сброс разрешений папок ntfsicacls сброс разрешений папки ntfs

Эта команда включит унаследованные разрешения NTFS для указанного объекта и удалит все остальные ACL.

Копирование разрешений NTFS из одной папки в другую

Для копирования разрешений NTFS из одной папки в другую можно использовать текстовый файл с резервной копией ACLs.

Сначала создайте резервную копию 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 между папками в Windows с помощью инструмента командной строки копирование разрешений ntfs между папками в Windows с помощью инструмента командной строки

Затем импортируйте разрешения NTFS из файла и примените их к целевой папке:

icacls D:\ /restore C:\PS\save_ntfs_perms.txt /c

Еще проще скопировать разрешения NTFS из одной папки в другую с помощью PowerShell:

Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *