Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

คุณสามารถใช้ iCACLS . ในตัว เครื่องมือในการจัดการสิทธิ์ NTFS บน Windows icacls.exe เครื่องมือบรรทัดคำสั่งช่วยให้คุณรับหรือเปลี่ยนรายการควบคุมการเข้าถึง (ACL) สำหรับไฟล์และโฟลเดอร์ในระบบไฟล์ NTFS ในบทความนี้ เราจะมาดูคำสั่งที่มีประโยชน์สำหรับจัดการสิทธิ์ NTFS บน Windows ด้วย iCACLS

สารบัญ:

  • การใช้ iCACLS เพื่อดูและตั้งค่าการอนุญาตไฟล์และโฟลเดอร์
  • วิธีการสำรอง (ส่งออก) โฟลเดอร์อนุญาตสิทธิ์ NTFS
  • จะกู้คืนสิทธิ์ NTFS ด้วย iCacls ได้อย่างไร
  • รีเซ็ตการอนุญาต NTFS เป็นค่าเริ่มต้น
  • คัดลอกการอนุญาต NTFS จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่ง

การใช้ iCACLS เพื่อดูและตั้งค่าการอนุญาตไฟล์และโฟลเดอร์

สิทธิ์การเข้าถึงปัจจุบันสำหรับวัตถุใด ๆ บนโวลุ่ม NTFS สามารถแสดงได้ดังนี้:

icacls 'C:\Share\Veteran\'

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

คำสั่งจะส่งคืนรายชื่อผู้ใช้และกลุ่มที่ได้รับมอบหมายสิทธิ์การเข้าถึง กำหนดสิทธิ์โดยใช้ตัวย่อ:

  • – การเข้าถึงแบบเต็ม
  • – แก้ไขการเข้าถึง
  • RX – อ่านและดำเนินการเข้าถึง
  • – การเข้าถึงแบบอ่านอย่างเดียว
  • – การเข้าถึงแบบเขียนเท่านั้น
  • – ลบ

มีการระบุสิทธิ์การสืบทอดก่อนการอนุญาตการเข้าถึง (การอนุญาตการสืบทอดจะใช้กับโฟลเดอร์เท่านั้น):

  • (OI) – มรดกวัตถุ
  • (CI) – มรดกคอนเทนเนอร์
  • (IO) – สืบทอดเท่านั้น
  • (I) – สืบทอดสิทธิ์จากคอนเทนเนอร์หลัก

ด้วย icacls คุณสามารถเปลี่ยนการอนุญาตโฟลเดอร์ได้

เพื่อให้ “resource\mun-fs01_Auditors ” กลุ่มสิทธิ์ในการอ่านและดำเนินการ (RX) ในโฟลเดอร์:

icacls 'C:\Share\Veteran\' /grant resource\mun-fs01_Auditors:RX

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

ในการลบกลุ่มออกจากไดเร็กทอรี ACL:

icacls 'C:\Share\Veteran\' /remove resource\mun-fs01_Auditors

ด้วย icacls คุณสามารถเปิดใช้งานการสืบทอดสิทธิ์ NTFS จากโฟลเดอร์หลัก:

icacls 'C:\Share\Veteran\' /inheritance:e

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

หรือปิดใช้งานการสืบทอดด้วยการลบ ACE ที่สืบทอดมาทั้งหมด:

icacls 'C:\Share\Veteran\' /inheritance:r

คุณสามารถใช้ icacls.exe เพื่อเปลี่ยนความเป็นเจ้าของไฟล์หรือโฟลเดอร์

icacls 'C:\Share\Veteran\' /setowner resource\j.smith /T /C /L /Q

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

จะสำรอง (ส่งออก) โฟลเดอร์อนุญาตสิทธิ์ NTFS ได้อย่างไร

ก่อนที่จะทำการเปลี่ยนแปลงที่สำคัญในสิทธิ์อนุญาต (ย้าย อัปเดต ACL ย้ายทรัพยากร) ในโฟลเดอร์ NTFS (หรือโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน) ขอแนะนำให้สำรองข้อมูลการอนุญาตเก่า สำเนานี้จะอนุญาตให้คุณกลับสู่การตั้งค่าเดิม หรืออย่างน้อยก็ชี้แจงสิทธิ์เก่าสำหรับไฟล์/ไดเร็กทอรีเฉพาะ

คุณสามารถใช้เครื่องมือ icacls.exe เพื่อส่งออก/นำเข้าการอนุญาตไดเรกทอรี NTFS ปัจจุบัน ในการรับ ACL ทั้งหมดสำหรับโฟลเดอร์เฉพาะ (รวมถึงไดเรกทอรีย่อยและไฟล์) และส่งออกไปยังไฟล์ข้อความ ให้รันคำสั่งต่อไปนี้:

icacls g:\veteran /save c:\backup\veteran_ntfs_perms.txt /t /c

หมายเหตุ . /t คีย์ใช้เพื่อรับ ACL สำหรับไดเรกทอรีย่อยและไฟล์ทั้งหมด /c อนุญาตให้ละเว้นข้อผิดพลาดในการเข้าถึง โดยการเพิ่ม /q ตัวเลือก คุณสามารถปิดใช้งานการแสดงข้อมูลเกี่ยวกับการเข้าถึงอ็อบเจ็กต์ระบบไฟล์ได้สำเร็จ

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

การส่งออกการอนุญาตอาจใช้เวลานานขึ้นอยู่กับจำนวนไฟล์และโฟลเดอร์ หลังจากดำเนินการคำสั่งแล้ว สถิติเกี่ยวกับจำนวนการประมวลผลไฟล์ที่สำเร็จหรือล้มเหลวจะแสดงขึ้น

Successfully processed 3001 files; Failed processing 0 files

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

เปิดไฟล์ veteran_ntfs_perms.tx ใช้โปรแกรมแก้ไขข้อความใด ๆ อย่างที่คุณเห็น มีรายการไฟล์และโฟลเดอร์ทั้งหมดในไดเรกทอรี และแต่ละรายการมีสิทธิ์ปัจจุบันที่ระบุไว้ใน SDDL (ภาษานิยามคำอธิบายความปลอดภัย)

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

ตัวอย่างเช่น สิทธิ์ 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

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

หรือใช้คำสั่งใดคำสั่งหนึ่ง:
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

หมายเหตุ . โปรดทราบว่าเมื่อนำเข้าการอนุญาตจากไฟล์ คุณควรระบุพาธไปยังไดเร็กทอรีหลักแทนชื่อโฟลเดอร์

หลังจากกู้คืนสิทธิ์ทั้งหมดแล้ว สถิติเกี่ยวกับจำนวนไฟล์ที่ประมวลผลจะปรากฏขึ้นด้วย

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

โปรดทราบว่าไฟล์ ACL สำรองมีเส้นทางไฟล์แบบสัมพัทธ์ ไม่ใช่แบบสัมบูรณ์ ซึ่งหมายความว่าคุณสามารถกู้คืนสิทธิ์ในโฟลเดอร์ได้แม้ว่าจะย้ายไปยังไดรฟ์/ไดเร็กทอรีอื่นแล้ว

กำลังรีเซ็ตการอนุญาต NTFS เป็นค่าเริ่มต้น

คุณสามารถใช้เครื่องมือ icacls เพื่อรีเซ็ตการอนุญาตของโฟลเดอร์ (รวมถึงไฟล์ที่ซ้อนกันและไดเรกทอรีย่อย)

icacls C:\share\veteran /reset /T /Q /C

วิธีการตั้งค่า คัดลอก ส่งออก หรือกู้คืนสิทธิ์ NTFS โดยใช้ iCACLS

คำสั่งนี้จะเปิดใช้งานการอนุญาต 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

จากนั้นนำเข้าการอนุญาต NTFS จากไฟล์และนำไปใช้กับโฟลเดอร์เป้าหมาย:

icacls D:\ /restore C:\PS\save_ntfs_perms.txt /c

การคัดลอกการอนุญาต NTFS จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่งทำได้ง่ายยิ่งขึ้นโดยใช้ PowerShell:

Get-Acl -Path 'C:\Share\Veteran' | Set-Acl -Path 'E:\PublicDOCS'