Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

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

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

ใช้ iCACLS เพื่อดูและตั้งค่าสิทธิ์ไฟล์และโฟลเดอร์

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

icacls 'C:\Share\Veteran\'

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

  • F – เข้าถึงเต็มที่ (Full access)
  • M – เข้าถึงแก้ไข (Modify access)
  • RX – อ่านและรัน (Read and execute access)
  • R – อ่านอย่างเดียว (Read-only access)
  • W – เขียนอย่างเดียว (Write-only access)
  • D – ลบ (Delete)

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

  • (OI) – Object Inherit
  • (CI) – Container Inherit
  • (IO) – Inherit Only
  • (I) – สืบทอดสิทธิ์จากคอนเทนเนอร์พาเรนต์

ตัวอย่างคำสั่งทั่วไป

ให้สิทธิ์กลุ่ม "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

เปิดใช้งานการสืบทอดสิทธิ์ NTFS จากโฟลเดอร์พาเรนต์:

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

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

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

เปลี่ยนเจ้าของไฟล์หรือโฟลเดอร์:

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

วิธีสำรอง (ส่งออก) สิทธิ์ NTFS ของโฟลเดอร์

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

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

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

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

วิธีกู้คืนสิทธิ์ NTFS ด้วย iCACLS

คุณสามารถกู้คืนสิทธิ์ NTFS บนโฟลเดอร์โดยใช้ไฟล์ veteran_ntfs_perms.txt ที่สร้างไว้ก่อนหน้านี้ ในการตั้งค่าสิทธิ์ NTFS บนวัตถุในไดเรกทอรีตามค่าในไฟล์สำรอง ACL ให้รันคำสั่งนี้:

icacls g:\ /restore c:\backup\veteran_ntfs_perms.txt /t /c
⚠ หมายเหตุสำคัญ: โปรดทราบว่าเมื่อนำเข้าสิทธิ์จากไฟล์ คุณควรระบุเส้นทางไปยังไดเรกทอรีพาเรนต์แทนที่จะเป็นชื่อโฟลเดอร์

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

การรีเซ็ตสิทธิ์ 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 ใน Notepad และแก้ไขชื่อโฟลเดอร์ ใช้ฟังก์ชัน Replace เพื่อแทนที่ชื่อ Veteran ด้วย PublicDOCS

จากนั้นนำเข้าสิทธิ์ NTFS จากไฟล์และนำไปใช้กับโฟลเดอร์ปลายทาง:

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

การคัดลอกสิทธิ์ NTFS จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่งยังง่ายกว่านี้ด้วย PowerShell:

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