Menyimpan dan mengembalikan izin NTFS menggunakan ICACLS

Mengelola izin NTFS pada folder server file terkadang bisa menjadi tugas yang membosankan. Perubahan yang tidak disengaja di tingkat teratas (root) direktori dapat menyebabkan hasil yang tidak terduga ketika izin individu pada file dan direktori tingkat yang lebih rendah diubah secara paksa. Sebelum perubahan signifikan dalam izin (porting, memperbarui ACL, migrasi sumber daya) pada folder NTFS (berbagi jaringan), disarankan untuk memiliki cadangan izin lama di tangan, yang akan memungkinkan Anda untuk kembali ke pengaturan asli atau setidaknya memperjelas hak akses lama ke file atau direktori tertentu.

Untuk mengekspor / mengimpor izin direktori NTFS saat ini, Anda dapat menggunakan utilitas icacl, yang disertakan dengan Windows. Utilitas ini digunakan untuk memperoleh dan mengubah daftar kontrol akses (ACL) untuk mengajukan objek sistem.

Untuk mendapatkan semua ACL untuk folder dan subdirektori dan file tertentu dan menyimpannya ke file teks, Anda perlu menjalankan perintah

icacls g: \ veteran / simpan veteran_ntfs_perms.txt / t / c
File dengan izin secara default disimpan di folder pengguna saat ini.

Catatan. Sakelar / t menunjukkan bahwa Anda perlu mendapatkan ACL untuk semua subdirektori dan file anak, sakelar / c memungkinkan Anda untuk mengabaikan kesalahan akses. Dengan menambahkan sakelar / q, Anda dapat menonaktifkan tampilan informasi tentang tindakan yang berhasil saat mengakses objek sistem file.

Bergantung pada jumlah file dan folder, proses mengekspor izin bisa memakan waktu cukup lama. Setelah perintah selesai, statistik pada jumlah file yang diproses dan dilewati akan ditampilkan..

Berhasil memproses 3001 file; Gagal memproses 0 file

Buka file veteran_ntfs_perms.txt menggunakan editor teks apa pun. Seperti yang Anda lihat, itu berisi daftar lengkap folder dan file dalam direktori, dan untuk setiap izin saat ini ditunjukkan dalam format SDDL (Bahasa Definisi Penjelasan Keamanan).

Sebagai contoh, izin NTFS saat ini pada root folder adalah sebagai berikut:

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

Baris ini menjelaskan akses untuk beberapa grup atau pengguna. Kami tidak akan menyelidiki sintaks SDDL secara terperinci (jika diinginkan, bantuan tentang itu dapat ditemukan di MSDN). Misalnya, kami akan menganalisis sepotong kecil SDDL dengan memilih hanya satu subjek:

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

A - jenis akses (Izinkan)

Oici - Bendera Warisan (OBYEK INHERIT + WADAH KONTAINER)

FA - jenis izin (SDDL_FILE_ALL - semuanya diizinkan)

S-1-5-21-2340243621-32346796122-2349433313-24109193 - SID akun atau grup dalam domain yang izinnya ditetapkan. Untuk mengonversi SID ke nama akun atau grup, gunakan perintah:

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

Atau perintah Get-ADUser -Identity SID atau Get-ADGroup -Identity SID

Dengan demikian, kami mengetahui bahwa corp \ dvivan pengguna memiliki hak Kontrol Penuh untuk direktori ini.

Untuk secara otomatis mengatur solusi NTFS ke objek dalam direktori ini sesuai dengan nilai yang disimpan dalam file cadangan, jalankan perintah:

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

Catatan. Harap dicatat bahwa ketika mengimpor izin dari file, jalur ke folder induk ditentukan, tetapi bukan nama direktori itu sendiri.

Di akhir pemulihan izin, statistik jumlah file yang diproses juga akan ditampilkan..