Zapisywanie i przywracanie uprawnień NTFS za pomocą ICACLS

Zarządzanie uprawnieniami NTFS w folderach serwera plików może czasem być żmudnym zadaniem. Nieostrożne zmiany na najwyższym (głównym) poziomie katalogu mogą prowadzić do nieoczekiwanych rezultatów, gdy indywidualne uprawnienia do plików i katalogów niższego poziomu zostaną wymuszone. Przed znaczącą zmianą uprawnień (portowanie, aktualizowanie list ACL, migracja zasobów) w folderze NTFS (udział sieciowy) zaleca się wykonanie kopii zapasowej starych uprawnień, co pozwoli powrócić do pierwotnych ustawień lub przynajmniej wyjaśnić stare prawa dostępu do określonego pliku lub katalogu.

Aby wyeksportować / zaimportować bieżące uprawnienia do katalogu NTFS, możesz użyć narzędzia icacls, który jest dołączony do systemu Windows. Narzędzie służy do uzyskiwania i modyfikowania list kontroli dostępu (ACL) do obiektów systemu plików.

Aby uzyskać wszystkie listy ACL dla określonego folderu oraz podkatalogów i plików i zapisać je w pliku tekstowym, musisz uruchomić polecenie

icacls g: \eteran / save veteran_ntfs_perms.txt / t / c
Plik z uprawnieniami jest domyślnie zapisywany w bieżącym folderze użytkownika.

Uwaga. Przełącznik / t wskazuje, że musisz uzyskać listę ACL dla wszystkich podrzędnych podkatalogów i plików, przełącznik / c pozwala zignorować błędy dostępu. Dodając przełącznik / q, można wyłączyć wyświetlanie informacji o udanych akcjach podczas uzyskiwania dostępu do obiektów systemu plików.

W zależności od liczby plików i folderów proces eksportowania uprawnień może potrwać dość długo. Po zakończeniu polecenia zostaną wyświetlone statystyki dotyczące liczby przetworzonych i pominiętych plików..

Pomyślnie przetworzono 3001 plików; Przetwarzanie 0 plików nie powiodło się

Otwórz plik veteran_ntfs_perms.txt za pomocą dowolnego edytora tekstu. Jak widać, zawiera pełną listę folderów i plików w katalogu, a dla każdego bieżącego uprawnienia są wskazane w formacie SDDL (Język definicji deskryptorów zabezpieczeń).

Na przykład bieżące uprawnienia NTFS do katalogu głównego folderu są następujące:

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

Ta linia opisuje dostęp dla kilku grup lub użytkowników. Nie zagłębimy się szczegółowo w składnię SDDL (jeśli chcesz, pomoc na ten temat można znaleźć w MSDN). Na przykład przeanalizujemy mały fragment SDDL, wybierając tylko jeden temat:

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

A - rodzaj dostępu (Zezwól)

Oici - flaga dziedziczenia (OBIEKT INHERIT + CONTAINER INHERIT)

FA - typ uprawnienia (SDDL_FILE_ALL - wszystko jest dozwolone)

S-1-5-21-2340243621-32346796122-2349433313-24109193 - Identyfikator SID konta lub grupy w domenie, dla której ustawiono uprawnienia. Aby przekonwertować identyfikator SID na nazwę konta lub grupy, użyj polecenia:

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

Lub polecenia Get-ADUser -Identity SID lub Get-ADGroup -Identity SID

W ten sposób dowiedzieliśmy się, że użytkownik corp \ dvivan ma uprawnienia do pełnej kontroli tego katalogu.

Aby automatycznie ustawić rozwiązania NTFS dla obiektów w tym katalogu zgodnie z wartościami zapisanymi w pliku kopii zapasowej, uruchom polecenie:

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

Uwaga. Należy pamiętać, że podczas importowania uprawnień z pliku określona jest ścieżka do folderu nadrzędnego, ale nie nazwa samego katalogu.

Po zakończeniu przywracania uprawnień zostaną wyświetlone statystyki dotyczące liczby przetworzonych plików..