คุณสามารถใช้ iCACLS . ในตัว เครื่องมือในการจัดการสิทธิ์ NTFS บน Windows icacls.exe
เครื่องมือบรรทัดคำสั่งช่วยให้คุณรับหรือเปลี่ยนรายการควบคุมการเข้าถึง (ACL) สำหรับไฟล์และโฟลเดอร์ในระบบไฟล์ NTFS ในบทความนี้ เราจะมาดูคำสั่งที่มีประโยชน์สำหรับจัดการสิทธิ์ NTFS บน Windows ด้วย iCACLS
สารบัญ:
- การใช้ iCACLS เพื่อดูและตั้งค่าการอนุญาตไฟล์และโฟลเดอร์
- วิธีการสำรอง (ส่งออก) โฟลเดอร์อนุญาตสิทธิ์ NTFS
- จะกู้คืนสิทธิ์ NTFS ด้วย iCacls ได้อย่างไร
- รีเซ็ตการอนุญาต NTFS เป็นค่าเริ่มต้น
- คัดลอกการอนุญาต NTFS จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่ง
การใช้ iCACLS เพื่อดูและตั้งค่าการอนุญาตไฟล์และโฟลเดอร์
สิทธิ์การเข้าถึงปัจจุบันสำหรับวัตถุใด ๆ บนโวลุ่ม NTFS สามารถแสดงได้ดังนี้:
icacls 'C:\Share\Veteran\'
คำสั่งจะส่งคืนรายชื่อผู้ใช้และกลุ่มที่ได้รับมอบหมายสิทธิ์การเข้าถึง กำหนดสิทธิ์โดยใช้ตัวย่อ:
- ฟ – การเข้าถึงแบบเต็ม
- ม – แก้ไขการเข้าถึง
- RX – อ่านและดำเนินการเข้าถึง
- ร – การเข้าถึงแบบอ่านอย่างเดียว
- ว – การเข้าถึงแบบเขียนเท่านั้น
- ด – ลบ
มีการระบุสิทธิ์การสืบทอดก่อนการอนุญาตการเข้าถึง (การอนุญาตการสืบทอดจะใช้กับโฟลเดอร์เท่านั้น):
- (OI) – มรดกวัตถุ
- (CI) – มรดกคอนเทนเนอร์
- (IO) – สืบทอดเท่านั้น
- (I) – สืบทอดสิทธิ์จากคอนเทนเนอร์หลัก
ด้วย icacls คุณสามารถเปลี่ยนการอนุญาตโฟลเดอร์ได้
เพื่อให้ “resource\mun-fs01_Auditors ” กลุ่มสิทธิ์ในการอ่านและดำเนินการ (RX) ในโฟลเดอร์:
icacls 'C:\Share\Veteran\' /grant resource\mun-fs01_Auditors:RX
ในการลบกลุ่มออกจากไดเร็กทอรี ACL:
icacls 'C:\Share\Veteran\' /remove resource\mun-fs01_Auditors
ด้วย icacls คุณสามารถเปิดใช้งานการสืบทอดสิทธิ์ NTFS จากโฟลเดอร์หลัก:
icacls 'C:\Share\Veteran\' /inheritance:e
หรือปิดใช้งานการสืบทอดด้วยการลบ ACE ที่สืบทอดมาทั้งหมด:
icacls 'C:\Share\Veteran\' /inheritance:r
คุณสามารถใช้ icacls.exe เพื่อเปลี่ยนความเป็นเจ้าของไฟล์หรือโฟลเดอร์
icacls 'C:\Share\Veteran\' /setowner resource\j.smith /T /C /L /Q
จะสำรอง (ส่งออก) โฟลเดอร์อนุญาตสิทธิ์ NTFS ได้อย่างไร
ก่อนที่จะทำการเปลี่ยนแปลงที่สำคัญในสิทธิ์อนุญาต (ย้าย อัปเดต ACL ย้ายทรัพยากร) ในโฟลเดอร์ NTFS (หรือโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน) ขอแนะนำให้สำรองข้อมูลการอนุญาตเก่า สำเนานี้จะอนุญาตให้คุณกลับสู่การตั้งค่าเดิม หรืออย่างน้อยก็ชี้แจงสิทธิ์เก่าสำหรับไฟล์/ไดเร็กทอรีเฉพาะ
คุณสามารถใช้เครื่องมือ icacls.exe เพื่อส่งออก/นำเข้าการอนุญาตไดเรกทอรี NTFS ปัจจุบัน ในการรับ ACL ทั้งหมดสำหรับโฟลเดอร์เฉพาะ (รวมถึงไดเรกทอรีย่อยและไฟล์) และส่งออกไปยังไฟล์ข้อความ ให้รันคำสั่งต่อไปนี้:
icacls g:\veteran /save c:\backup\veteran_ntfs_perms.txt /t /c
การส่งออกการอนุญาตอาจใช้เวลานานขึ้นอยู่กับจำนวนไฟล์และโฟลเดอร์ หลังจากดำเนินการคำสั่งแล้ว สถิติเกี่ยวกับจำนวนการประมวลผลไฟล์ที่สำเร็จหรือล้มเหลวจะแสดงขึ้น
Successfully processed 3001 files; Failed processing 0 files
เปิดไฟล์ veteran_ntfs_perms.tx ใช้โปรแกรมแก้ไขข้อความใด ๆ อย่างที่คุณเห็น มีรายการไฟล์และโฟลเดอร์ทั้งหมดในไดเรกทอรี และแต่ละรายการมีสิทธิ์ปัจจุบันที่ระบุไว้ใน 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 (รูปแบบ SDDL ถูกกล่าวถึงสั้น ๆ ในบทความ “วิธีการดูและแก้ไขการอนุญาตบริการใน Windows?”) มาโฟกัสที่ SDDL ชิ้นเล็กๆ โดยเลือกเพียงวัตถุเดียว:
(A;OICI;FA;;;S-1-5-21-2340243621-32346796122-2349433313-24109193)
เอ – ประเภทการเข้าถึง (อนุญาต)
คปภ. – แฟล็กการสืบทอด (OBJECT INHERIT+ CONTAINER INHERIT)
เอฟเอ – ประเภทการอนุญาต (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
หรือใช้คำสั่งใดคำสั่งหนึ่ง: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
หลังจากกู้คืนสิทธิ์ทั้งหมดแล้ว สถิติเกี่ยวกับจำนวนไฟล์ที่ประมวลผลจะปรากฏขึ้นด้วย
โปรดทราบว่าไฟล์ ACL สำรองมีเส้นทางไฟล์แบบสัมพัทธ์ ไม่ใช่แบบสัมบูรณ์ ซึ่งหมายความว่าคุณสามารถกู้คืนสิทธิ์ในโฟลเดอร์ได้แม้ว่าจะย้ายไปยังไดรฟ์/ไดเร็กทอรีอื่นแล้ว
กำลังรีเซ็ตการอนุญาต NTFS เป็นค่าเริ่มต้น
คุณสามารถใช้เครื่องมือ icacls เพื่อรีเซ็ตการอนุญาตของโฟลเดอร์ (รวมถึงไฟล์ที่ซ้อนกันและไดเรกทอรีย่อย)
icacls C:\share\veteran /reset /T /Q /C
คำสั่งนี้จะเปิดใช้งานการอนุญาต NTFS ที่สืบทอดมาสำหรับอ็อบเจ็กต์ที่ระบุ และจะลบ ACL อื่นๆ ออก
กำลังคัดลอกสิทธิ์ NTFS จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่ง
คุณสามารถใช้ไฟล์ข้อความที่มีการสำรองข้อมูล ACL เพื่อคัดลอกการอนุญาต NTFS จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งได้
ขั้นแรก สำรองข้อมูลสิทธิ์ 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 จากไฟล์และนำไปใช้กับโฟลเดอร์เป้าหมาย:
icacls D:\ /restore C:\PS\save_ntfs_perms.txt /c
Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'