Сохранение и восстановление NTFS разрешений с помощью ICACLS | Windows для системных администраторов

Сохранение и восстановление NTFS разрешений с помощью ICACLS

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

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

Чтобы получить все ACL для конкретной папки и вложенных каталогов и файлов и сохранить их в текстовый файл, нужно выполнить команду

icacls g:\veteran /save veteran_ntfs_perms.txt /t /c
Файл с правами доступа по-умоланию сохраняется в текущую папку пользователя.

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

icacls save - экспорт NTFS разрешенийВ зависимости от количества файлов и папок, процесс экспорта разрешений может занять довольно продолжительное время. После окончания выполнения команды отобразится статистика о количестве обработанных и пропущенных файлов.

Successfully processed 3001 files; Failed processing 0 files

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

разрешения на файлы и каталоге в формате 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 синтаксис (при желании справку по нему можно найти на MSDN). Мы для примера разберем небольшой кусок SDDL, выбрав только одного субъекта:

(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)

A – тип доступа (Allow)

OICI – флаг наследования (OBJECT INHERIT+ CONTAINER INHERIT)

FA – тип разрешения (SDDL_FILE_ALL – все разрешено)

S-1-5-21-2340243621-32346796122-2349433313-24109193 – SID учетной записи или группы в домене, для которой заданы разрешения. Чтобы преобразовать  SID в имя учетной записи или группы, воспользуемся командой:

$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2340243621-32346796122-2349433313-24109193")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value

AD sid to userИли командами Get-ADUser -Identity SID или  Get-ADGroup -Identity SID

Таким образом, мы узнали, что пользователь corp\dvivan обладал полными правами (Full Control) на данный каталог.

Чтобы автоматически выставить NTFS решения на объекты в данном каталоге в соответствии со значениями, сохраненными в  файле резервной копии, выполните команду:

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

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

По окончанию восстановления разрешений также отобразится статистика о количестве обработанных файлов.

icacls восстановление NTFS разрешений

Еще записи по теме: Windows Server 2008, Windows Server 2012 R2
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 6

Оставить комментарий
  1. Александр | 28.05.2017

    Если не нужно специальных «извращений» с правами, то можно воспользоваться и предыдущей, более простой и удобной утилитой — cacls.exe, которая все еще входит в состав Windows

    Ответить
    • itpro | 30.05.2017

      Возможно ее вывод разрешений и проще чем у icacls, но вот экспорт, импорт разрешений и рекурсию она все же не поддерживает.

      Ответить
      • Александр | 30.05.2017

        И да, я же написал
        «Если не нужно специальных «извращений» с правами»

        cacls.exe освоить в разы проще/ Правд. если дружишь с правильным текстовым редактором, а не с ГУЁвым.
        Экспорт/Импорт — в чем проблема?
        Экспорт — переадресация вывода в файл
        Импорт — запуск bat-ника после обработки в FAR (любом редакторе с макросами)

        Правда сегодняшние «новички» они все больше «мышиные» (ГУЁ-вые) пользователи :-) А не админы :-)

        Ответить
  2. Nic Donovan | 08.06.2017

    Спасибо за статью.
    Вопрос — прокатал процедуру на одном из своих фс. из 1,5 млн. файлов около 1600 в ошибке. Как можно узнать что это за файлы?

    Ответить
    • itpro | 14.06.2017

      Утилита ICACLS выводит довольно подробный лог. Добавьте атрибут /q (не будут выводится сообщения об успешных операциях) и перенаправьте вывод в текстовый файл:
      icacls D:\Share /save c:\ps\share_ntfs_perms.txt /t /c /q >>c:\ps\icacls.log

      Ответить
      • Nic Donovan | 19.06.2017

        Спасибо. Помогло.

        Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

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

Я не робот( Обязательно отметьте)



MAXCACHE: 0.25MB/0.00146 sec