Управлението на разрешенията за NTFS за папки на файлов сървър понякога може да бъде досадна задача. Небрежните промени в горното (коренното) ниво на директорията могат да доведат до неочаквани резултати, когато индивидуалните разрешения за файлове и директории от по-ниско ниво се променят насилствено. Преди значителна промяна в разрешенията (пренасяне, актуализиране на ACL, миграция на ресурси) в папка NTFS (мрежов дял) е препоръчително да имате под ръка резервно копие на старите разрешения, което ще ви позволи да се върнете към първоначалните настройки или поне да изясните старите права за достъп до конкретен файл или директория.
За да експортирате / импортирате текущите разрешения на директория NTFS, можете да използвате помощната програма icacls, която е включена в Windows. Помощната програма се използва за получаване и промяна на списъци за контрол на достъпа (ACL) за файлови системни обекти.
За да получите всички ACL за конкретна папка и поддиректории и файлове и да ги запишете в текстов файл, трябва да стартирате командата
icacls g: \ veteran / save veteran_ntfs_perms.txt / t / c
Файлът с разрешения по подразбиране се запазва в текущата потребителска папка.
В зависимост от броя на файловете и папките процесът на експортиране на разрешения може да отнеме доста време. След завършването на командата ще се покажат статистически данни за броя на обработените и пропуснати файлове..
Успешно обработени 3001 файла; Неуспешна обработка на 0 файла
Отворете файла 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 (ако желаете, помощ за него можете да намерите в MSDN). Например, ще анализираме малко парче SDDL, като изберем само един предмет:
(A; OICI; FA ;;; S-1-5-21-2340243621-32346796122-2349433313-24109193)
А - тип достъп (разрешен)
OICI - флаг за наследство (ОБЕКТ ИНЕРИТ + КОНТАЙНЕР ИНЕРИТ)
ФА - тип разрешение (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
Или команди Get-ADUser -Identity SID или Get-ADGroup -Identity SID
Така научихме, че потребителят corp \ dvivan има права за пълен контрол върху тази директория.
За да зададете автоматично NTFS решения на обекти в тази директория в съответствие със стойностите, съхранени в архивния файл, изпълнете командата:
icacls g: \ / възстанови veteran_ntfs_perms.txt / t / c
В края на възстановяването на разрешения ще се показва и статистика за броя на обработените файлове..