วิธีการสร้างรายงานสิทธิ์ NTFS และ ACL ใน Windows

การปรับปรุงครั้งล่าสุด: 17/12/2025
ผู้แต่ง: ไอแซก
  • PowerShell อนุญาตให้ส่งออกสิทธิ์ NTFS แปลงเป็นไฟล์ CSV หรือข้อความเพื่อวิเคราะห์ใน Excel แม้ว่าจะมีข้อจำกัดในสภาพแวดล้อมขนาดใหญ่ก็ตาม
  • เครื่องมือเฉพาะทางทั้งแบบฟรีและเสียค่าใช้จ่าย ช่วยให้การสร้างรายงานด้วยภาพ การกำหนดสิทธิ์ที่มีประสิทธิภาพ และการติดตามการเปลี่ยนแปลงเป็นไปได้อย่างสะดวก
  • ความเข้าใจเกี่ยวกับ NTFS, ACL, ACE, การสืบทอด และลำดับการประเมิน เป็นกุญแจสำคัญในการตีความรายงานใดๆ ได้อย่างถูกต้อง
  • การผสมผสานระหว่างสคริปต์ การตรวจสอบเหตุการณ์ และแนวปฏิบัติที่ดีที่สุด ช่วยให้สามารถควบคุมการเข้าถึงข้อมูลได้อย่างมีประสิทธิภาพ Windows.

รายงานสิทธิ์ NTFS และ ACLs

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

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

icacls และ takeown
บทความที่เกี่ยวข้อง:
วิธีใช้ icacls และ takeown เพื่อแก้ไขปัญหาการอนุญาตใน Windows

การตรวจสอบสิทธิ์ด้วย PowerShell โดยตรง: การส่งออกสิทธิ์ NTFS ไปยังไฟล์ CSV

Windows มีทุกอย่างที่จำเป็นสำหรับการตรวจสอบสิทธิ์ NTFS โดยไม่ต้องติดตั้งอะไรเพิ่มเติม แม้ว่าจะมีข้อจำกัดอยู่บ้างก็ตาม วิธีการแบบดั้งเดิมคือการใช้ PowerShell เพื่อสำรวจโครงสร้างโฟลเดอร์ อ่าน ACL ด้วยคำสั่งGet-Aclและส่งข้อมูลไปยังไฟล์ CSV จากนั้นจึงเปิดไฟล์นั้นใน Excel เพื่อวิเคราะห์ด้วยตัวกรองและตาราง Pivot

ตัวอย่างทั่วไปคือสคริปต์ที่กำหนดไฟล์เอาต์พุต CSVส่วนหัวที่มีคอลัมน์หลัก และเส้นทางรากที่จะตรวจสอบ (เช่น\\FileServer\share ) จากนั้น สคริปต์จะวนลูปผ่านโฟลเดอร์ย่อยทั้งหมดโดยใช้Get-ChildItem -Recurseตรวจสอบว่าแต่ละรายการเป็นคอนเทนเนอร์ (โฟลเดอร์) และดึงรายการสิทธิ์การเข้าถึงสำหรับแต่ละรายการ

– เส้นทางโฟลเดอร์ บัญชีหรือกลุ่ม (IdentityReference) ประเภทการเข้าถึง (อนุญาต/ไม่อนุญาต) ว่าสิทธิ์นั้นได้รับการสืบทอดหรือไม่ และแฟล็กการสืบทอดและการเผยแพร่แต่ละบรรทัดจะถูกสร้างขึ้นเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาคและเพิ่มลงในไฟล์ CSV โดยใช้Add- Content

เมื่อการสแกนเสร็จสมบูรณ์แล้ว เพียงเปิดไฟล์ CSV ในMicrosoft Excelแล้วใช้ตัวกรองกับคอลัมน์ต่างๆ เช่นIdentityReferenceหรือIsInheritedคุณก็จะได้รายงานสิทธิ์การเข้าถึง NTFS เบื้องต้นที่ค่อนข้างสมบูรณ์ พร้อมสำหรับการกรองตามผู้ใช้ กลุ่ม หรือเส้นทางเฉพาะต่างๆ

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

ข้อจำกัดของการตรวจสอบแบบดั้งเดิมใน PowerShell

แม้ว่า PowerShell จะทรงพลังและยืดหยุ่นมาก แต่ก็มีข้อจำกัดในทางปฏิบัติหลายประการสำหรับการตรวจสอบขนาดใหญ่ ข้อจำกัดที่เห็นได้ชัดที่สุดคือประสิทธิภาพ: เมื่อใช้`-Recurse`กับโครงสร้างแบบต้นไม้ที่ลึกมากซึ่งมีโฟลเดอร์หลายแสนโฟลเดอร์ การทำงานอาจช้ามากและใช้หน่วยความจำจำนวนมาก

นอกจากนี้ สคริปต์Get-Acl พื้นฐาน มักไม่เพียงพอสำหรับสถานการณ์ที่ซับซ้อนกว่า เช่น เมื่อคุณต้องการสิทธิ์การเข้าถึงที่มีประสิทธิภาพซึ่งคำนึงถึงการเป็นสมาชิกกลุ่มแบบซ้อนกัน การปฏิเสธที่สืบทอดมา SID พิเศษ หรือความขัดแย้งระหว่าง ACE หลายรายการ ทั้งหมดนี้เกี่ยวข้องกับการพัฒนาตรรกะเพิ่มเติมหรือการพึ่งพาโมดูลภายนอก ซึ่งทำให้การบำรุงรักษายุ่งยากขึ้น

นอกจากนี้ สคริปต์พื้นฐานส่วนใหญ่มักไม่แยกแยะความแตกต่างระหว่างสิทธิ์ที่สืบทอดมาและสิทธิ์ที่กำหนดอย่างชัดเจน นอกเหนือจากฟิลด์ IsInheritedง่ายๆและมักไม่แสดงที่มาที่แน่ชัดของการสืบทอดสิทธิ์ การตรวจสอบย้อนกลับนี้มักจำเป็นในการตรวจสอบการปฏิบัติตามข้อกำหนด (PCI DSS, SOX, HIPAA เป็นต้น) และการสร้างข้อมูลนี้ขึ้นมาใหม่ใน Excel ด้วยตนเองอาจค่อนข้างยุ่งยาก

สุดท้ายนี้ แม้ว่าคุณจะสามารถกำหนดเวลาการทำงานด้วย Task Scheduler และใช้Send-MailMessageหรือเครื่องมือที่คล้ายกันได้ แต่การสร้างรายงานอัตโนมัติที่มีประสิทธิภาพสำหรับรายงานเป็นระยะ (ด้วยเทมเพลต ผู้รับ ตัวกรองตามหน่วยธุรกิจ ฯลฯ ที่แตกต่างกัน) จำเป็นต้องใช้ความพยายามเพิ่มเติมอีกมาก หากคุณใช้เพียงสคริปต์พื้นฐานเท่านั้น

Netwrix Auditor สำหรับเซิร์ฟเวอร์ไฟล์ Windows

สำหรับผู้ที่ต้องการมากกว่าแค่สคริปต์แบบง่ายๆ หนึ่งในตัวเลือกยอดนิยมคือNetwrix Auditor for Windows File Serversผลิตภัณฑ์นี้มีโมดูลการรายงานเซิร์ฟเวอร์ไฟล์โดยเฉพาะ พร้อมรายงานที่กำหนดไว้ล่วงหน้าและตัวกรองขั้นสูง

ขั้นตอนการทำงานทั่วไปสำหรับการขอรายงานสิทธิ์การเข้าถึง NTFS ด้วย Netwrix นั้นง่ายมาก: เปิดคอนโซล ไปที่ Reports > File Servers > State Over Timeแล้วเลือก รายงาน Folder Permissionsใน ตัวกรอง Object UNC Pathให้ระบุเส้นทางไปยังทรัพยากรที่ใช้ร่วมกัน (ตัวอย่างเช่น\\MyServer\MyShare ) แล้วเรียกใช้คิวรี

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

  ฉันจะปลดล็อคไดรฟ์ที่ติดตั้ง Windows 10 ได้อย่างไร

ข้อดีที่เห็นได้ชัดอย่างหนึ่งของ Netwrix เมื่อเทียบกับ PowerShell คือNetwrix ได้รวมการวิเคราะห์การเป็นสมาชิกกลุ่มและการคำนวณสิทธิ์ที่มีประสิทธิภาพไว้แล้ว ทำให้ไม่จำเป็นต้องสร้างตรรกะเหล่านี้ด้วยตนเอง นอกจากนี้ เอ็นจิ้นของ Netwrix ยังได้รับการออกแบบมาสำหรับสภาพแวดล้อมขนาดใหญ่ ดังนั้นการสแกนจึงมักจะเร็วขึ้นและจัดการได้ง่ายกว่าในโครงสร้างพื้นฐานที่มีเซิร์ฟเวอร์ไฟล์หลายเครื่อง

สคริปต์ PowerShell ที่ใช้งานได้จริงสำหรับการสร้างรายงาน NTFS

หากคุณต้องการใช้กรอบการทำงานพื้นฐานแต่ต้องการเพิ่มประสิทธิภาพให้ดียิ่งขึ้นไปอีก วิธีที่ดีมากคือการเตรียมสคริปต์ PowerShell เฉพาะสำหรับงานตรวจสอบประเภทต่างๆจากเนื้อหาที่ให้มานี้ มีตัวอย่างที่มีประโยชน์มากถึงสามตัวอย่างที่ครอบคลุมความต้องการที่แตกต่างกันโดยไม่ต้องใช้เครื่องมือจากภบุคคลที่สาม

1. สคริปต์สำหรับตรวจสอบผู้ใช้เฉพาะรายในระดับแรก

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

สคริปต์กำหนดตัวแปรสำหรับ เส้นทางฐาน (ตัวอย่างเช่น P:\), ผู้ใช้เป้าหมาย (เช่น DOMINIO\d.perezและไฟล์เอาต์พุต จากนั้นจะดึงเฉพาะโฟลเดอร์ในระดับโดยตรงโดยใช้ รับรายการย่อย -เส้นทาง $Path -บังคับ การกรองโดย PSIsContainerสำหรับแต่ละโฟลเดอร์ ให้ดึงข้อมูล ACL ด้วย รับ-Acl และสำรวจทางเข้าออกต่างๆ ($acl.Access).

ในแต่ละ ACE ระบบจะตรวจสอบว่าIdentityReference ตรงกับผู้ใช้หรือไม่ หากตรงกัน ระบบจะบันทึกข้อมูลต่างๆ เช่น ชื่อโฟลเดอร์ สิทธิ์ (FileSystemRights) ประเภทการเข้าถึง (อนุญาต/ไม่อนุญาต) และว่าเป็นสิทธิ์ที่สืบทอดมาหรือไม่ ข้อมูลทั้งหมดจะถูกบันทึกไว้ในคอลเลกชัน และสุดท้ายส่งออกไปยังไฟล์ TXT หรือ CSV โดยใช้ คำสั่ง Out- File

หากไม่พบการจับคู่ สคริปต์จะบันทึกข้อความเช่น“ไม่พบสิทธิ์สำหรับผู้ใช้ X ภายใต้เส้นทาง Y”ซึ่งจะช่วยหลีกเลี่ยงรายงานที่ว่างเปล่าและทำให้ผลการตรวจสอบมีความชัดเจนยิ่งขึ้น

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

2. สคริปต์ตรวจสอบสินค้าคงคลังสำหรับผู้ใช้ทุกคนในระดับแรก

สคริปต์ที่สองใช้วิธีการแบบครอบคลุมมากขึ้น: แทนที่จะเน้นที่บัญชีเดียว มันจะสร้าง... ตรวจสอบรายการ ACE ทั้งหมดในแต่ละโฟลเดอร์ระดับแรกอย่างละเอียด ตัวอย่างเช่น ภายใต้เส้นทาง UNC \\recursocompartido\Administración\.

เช่นเดียวกับที่กล่าวมาแล้ว ระบบจะดึงข้อมูลเฉพาะโฟลเดอร์ที่อยู่ภายใต้พาธที่ระบุโดยตรงเท่านั้น โดยไม่มีการเรียกซ้ำ สำหรับแต่ละโฟลเดอร์ ระบบจะดึง ACL มาและสร้างบล็อกข้อความขึ้น โดยเริ่มต้นด้วยข้อความประมาณว่า“โฟลเดอร์: <พาธ>”ตามด้วยบรรทัดสำหรับรายการการเข้าถึงแต่ละรายการ ซึ่งประกอบด้วยผู้ใช้หรือกลุ่ม สิทธิ์ที่ได้รับมอบหมาย ประเภทการอนุญาต และว่าสิทธิ์นั้นได้รับการสืบทอดหรือไม่

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

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

3. สคริปต์การตรวจสอบแบบวนซ้ำที่ครอบคลุม

สคริปต์ที่สามเพิ่มความท้าทายขึ้นไปอีกขั้น โดยทำการตรวจสอบแบบวนซ้ำในทุกโฟลเดอร์ภายใต้เส้นทางที่ใช้ร่วมกัน โดยไม่รวมไฟล์ กล่าวคือ มันไม่ได้ตรวจสอบแค่ระดับแรกเท่านั้น แต่ยังตรวจสอบโครงสร้างโฟลเดอร์ย่อยทั้งหมดโดยใช้คำสั่ง Get-ChildItem -Recurseด้วย

สำหรับแต่ละโฟลเดอร์ที่พบ จะมีการดึง ACL มาและทำการสำรวจคอลเลกชันนั้น .Access เช่นเดียวกับสคริปต์ก่อนหน้านี้ ข้อมูลประจำตัว สิทธิ์ ประเภทการเข้าถึง และการสืบทอดจะถูกส่งออกไป ผลลัพธ์จะถูกจัดกลุ่มไว้ในไฟล์เอาต์พุต (txt หรือ CSV) ซึ่งอาจมีขนาดใหญ่มากในระบบขนาดใหญ่ แต่ก็มีข้อดีหลายประการ ภาพรวมที่ครอบคลุมเกี่ยวกับความมั่นคงด้านทรัพยากร.

รายงานประเภทนี้มักถูกร้องขอในการตรวจสอบการปฏิบัติตามกฎระเบียบอย่างเป็นทางการหรือเมื่อต้องการตรวจสอบสิทธิ์การเข้าถึงอย่างละเอียด พบการเข้าถึงที่ซ้ำซ้อน และค้นหากลุ่มที่มีสิทธิ์มากเกินไป

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

  วิธีการสร้างกิจวัตรอัตโนมัติด้วย IFTTT และ Windows

เครื่องมือฟรีสำหรับการรายงาน NTFS และการจัดการสิทธิ์การเข้าถึง

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

โปรแกรมรายงานสิทธิ์การเข้าถึงไฟล์ NTFS รุ่นฟรี (Cjwdev)

เครื่องมือนี้สร้างรายงานเกี่ยวกับสิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ซึ่งสามารถส่งออกเป็นไฟล์ HTML ได้อย่างง่ายดาย คุณสามารถเลือกได้ว่าจะแสดงผลแบบแผนผังต้นไม้หรือแบบตาราง และเน้นสิทธิ์การเข้าถึงด้วยสีต่างๆ เพื่อให้ระบุได้ง่ายว่าใครมีสิทธิ์การเข้าถึงประเภทใดบ้าง

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

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

เครื่องมือรายงานสิทธิ์การใช้งานที่มีประสิทธิภาพของ Netwrix

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

ใช้งานง่ายมาก: เพียงแค่ป้อนชื่อผู้ใช้หรือชื่อกลุ่มแล้วเครื่องมือจะคำนวณสิทธิ์การเข้าถึงโดยรวมให้ ผลลัพธ์สามารถส่งออกเป็น HTML ได้ด้วยการคลิกเพียงไม่กี่ครั้ง ข้อจำกัดหลักคือไม่แสดงสิทธิ์การเข้าถึงโดยละเอียดแยกตามโฟลเดอร์สำหรับรายละเอียดเพิ่มเติม จะต้องซื้อผลิตภัณฑ์ Netwrix Auditor for File Servers แทน

AccessEnum (Sysinternals, Microsoft)

ปัญหาคือไฟล์ที่ส่งออกได้มีเฉพาะรูปแบบ .txt เท่านั้นซึ่งมีรูปแบบที่ไม่ค่อยเป็นมิตรต่อการใช้งานหากต้องการส่งออกไปยัง Excel หากต้องการได้ไฟล์ในรูปแบบ .xls หรือ .xlsx คุณจะต้องทำการคัดลอกและวางด้วยตนเอง หรือประมวลผลเพิ่มเติมด้วยสคริปต์

โปรแกรมรายงานสิทธิ์การเข้าถึง (ซอฟต์แวร์วัดผลหลัก)

โปรแกรม Permissions Reporter นำเสนอประสบการณ์การใช้งานที่คล้ายคลึงกับ NTFS Permissions Reporter ของ Cjwdev แต่มีอินเทอร์เฟซที่ทันสมัยและสวยงามกว่าช่วยให้คุณสร้างและดาวน์โหลดรายงานได้อย่างง่ายดาย พร้อมมุมมองแบบแผนผังต้นไม้ และส่งออกไปยังรูปแบบต่างๆ ได้

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

เครื่องมือวิเคราะห์สิทธิ์การเข้าถึง (SolarWinds)

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

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

เครื่องมือตรวจสอบสิทธิ์ NTFS (MajorGeeks.com)

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

ข้อดีหลักคือช่วยลดเวลาที่ใช้ในการแก้ไขโครงสร้างสิทธิ์ขนาดใหญ่เมื่อเทียบกับแท็บความปลอดภัยของ Windows มันไม่ใช่เครื่องมือสำหรับการรายงานมากนัก แต่เป็นเครื่องมือจัดการ NTFS ที่รวดเร็วมากกว่า

PowerShell เป็น "ส่วนเสริม" สำหรับการสร้างรายงานแบบกำหนดเอง

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

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

แนวคิดหลัก: NTFS, ACL, ACE, การสืบทอด และตัวอธิบายความปลอดภัย

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

  Windows Registry และ CPCEMU: คู่มือทางเทคนิค แนวทางปฏิบัติที่ดีที่สุด และความเชื่อที่ผิด

ระบบไฟล์NTFS (New Technology File System)มีหน้าที่ในการกำหนดสิทธิ์ขั้นสูงให้กับไฟล์และไดเร็กทอรี วัตถุที่ปลอดภัยแต่ละรายการ (ไฟล์ โฟลเดอร์ คีย์รีจิสทรี กระบวนการ ฯลฯ) จะมีตัวอธิบายความปลอดภัย (SD)ซึ่งประกอบด้วย SID ของเจ้าของ กลุ่มหลัก และรายการสองรายการ ได้แก่DACL (Discretionary Access Control List) และSACL (System Access Control List)

รายการควบคุมการเข้าถึง (ACL)โดยพื้นฐานแล้วคือรายการของรายการควบคุมการเข้าถึง (ACE)แต่ละ ACE จะระบุว่าสำหรับ SID (ผู้ใช้หรือกลุ่ม) ที่กำหนดนั้น สิทธิ์ใดบ้างที่ได้รับอนุญาตหรือถูกปฏิเสธและสิทธิ์เหล่านั้นมีผลกับอะไรบ้าง (เฉพาะวัตถุนั้น วัตถุลูก หรือทั้งสองอย่าง) มีสามประเภทหลัก ได้แก่ ACE ที่อนุญาตการเข้าถึง ACE ที่ปฏิเสธการเข้าถึง และ ACE สำหรับการตรวจสอบ

DACL ( Diagnostic Access List) ควบคุมว่าใครสามารถเข้าถึงทรัพยากรได้บ้าง และใครไม่สามารถเข้าถึงได้: หากวัตถุใดไม่มี DACL การเข้าถึงจะได้รับอนุญาตสำหรับทุกคน (ซึ่งเป็นพฤติกรรมอันตราย) ในขณะที่ DACL ว่างเปล่าหมายความว่าไม่มีใครสามารถเข้าถึงได้ SACL ( Satellite Access List) ใช้เพื่อกำหนดว่าความพยายามในการเข้าถึงใดบ้างที่ควรบันทึกไว้ในบันทึกความปลอดภัย (ตัวอย่างเช่น การอ่านไฟล์สำคัญที่ไม่สำเร็จ)

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

ตำแหน่งที่จัดเก็บสิทธิ์การเข้าถึงไฟล์ NTFS และวิธีการจัดการสิทธิ์เหล่านั้น

สิทธิ์การเข้าถึงของระบบไฟล์ NTFS จะถูกจัดเก็บไว้ในตารางไฟล์หลัก (Master File Table หรือ MFT)ของไดรฟ์ NTFS ตารางนี้ทำหน้าที่เสมือนฐานข้อมูลภายในที่เก็บข้อมูลเมตาของแต่ละไฟล์และโฟลเดอร์ รวมถึงตัวอธิบายความปลอดภัย (และด้วยเหตุนี้จึงรวมถึง DACL และ SACL ที่เกี่ยวข้องด้วย)

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

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

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

คำสั่งขั้นสูง: TAKEOWN และ ICACLS

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

ตัวอย่างเช่น รูปแบบทั่วไปอย่างหนึ่งคือการดำเนินการบางอย่างเช่นนี้ takeown /F "%SYSTEMDRIVE%\*" /R /D Sซึ่งบ่งชี้ว่าผู้ใช้ปัจจุบันจะกลายเป็น เจ้าของไฟล์และโฟลเดอร์ทั้งหมดแบบเรียกซ้ำ จากดิสก์ระบบ ตัวแก้ไข /R ดำเนินการดังกล่าวกับไดเร็กทอรีย่อย และ /D S บังคับให้ตอบยืนยันในคำถามแบบโต้ตอบ

จากนั้นจึงสามารถนำไปใช้ได้ icacls "%SYSTEMDRIVE%\*" /grant Administradores:(D,WDAC) /T เพื่อมอบให้แก่ผู้บริหาร ใบอนุญาตเฉพาะ เช่น การลบ (D) หรือการเขียน DACL (WDAC) ลงบนดิสก์ทั้งหมด โดยใช้ /T เพื่อนำการดำเนินการไปใช้กับองค์ประกอบทั้งหมดของต้นไม้

คำสั่งicaclsช่วยให้คุณสามารถระบุสิทธิ์โดยสรุป (เช่น F สำหรับควบคุมเต็มรูปแบบ, M สำหรับแก้ไข, RX สำหรับอ่านและเรียกใช้งาน) หรือสิทธิ์ที่ละเอียดกว่า (ลบ, อ่านคุณลักษณะ, เขียนเจ้าของ ฯลฯ) รวมถึงโหมดการสืบทอดที่แตกต่างกันได้:

  • OI (Object Inherit): การสืบทอดไปยังไฟล์
  • CI (Container Inherit): การสืบทอดไปยังโฟลเดอร์ย่อย
  • IO (สืบทอดเท่านั้น)ACE ใช้ได้กับเด็กเท่านั้น ไม่ใช่กับวัตถุปัจจุบัน
  • NP (ไม่แพร่กระจาย)พวกมันจะไม่แพร่กระจายต่อไปเกินระดับถัดไป

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