เหตุใด Windows จึงประมวลผลวัตถุลูก NTFS ทั้งหมดเมื่อเปลี่ยน ACL ของผู้ปกครอง
ฉันคาดหวังว่าพฤติกรรมนี้ถ้าฉันทำเครื่องหมายในช่อง“ แทนที่สิทธิ์ของออบเจ็กต์ลูกทั้งหมด ... ” แต่แม้เมื่อไม่ได้ทำเครื่องหมายที่ช่องนั้นวินโดวส์จะประมวลผลเด็กทุกคน
เหตุใด Windows จึงประมวลผลวัตถุลูก NTFS ทั้งหมดเมื่อเปลี่ยน ACL ของผู้ปกครอง
ฉันคาดหวังว่าพฤติกรรมนี้ถ้าฉันทำเครื่องหมายในช่อง“ แทนที่สิทธิ์ของออบเจ็กต์ลูกทั้งหมด ... ” แต่แม้เมื่อไม่ได้ทำเครื่องหมายที่ช่องนั้นวินโดวส์จะประมวลผลเด็กทุกคน
คำตอบ:
ในการอนุญาตไฟล์ Windows จะไม่ได้รับมรดกแบบไดนามิก นั่นคือเมื่อมีความพยายามในการเปิดไฟล์ Windows จะดูที่ ACL ของไฟล์นั้นเท่านั้นและไม่ได้อยู่ที่ ACL ของไดเรกทอรีในแผนผังที่มีไฟล์อยู่ ซึ่งหมายความว่าเมื่อคุณเปลี่ยน ACL ของไดเรกทอรี Windows จะต้องอัปเดตสิทธิ์ของไฟล์และไดเรกทอรีย่อยทั้งหมดภายในไดเรกทอรีที่ได้รับผลกระทบทันที
ใน Windows การตั้งค่าการสืบทอดใน ACL ไม่ได้ระบุการสืบทอดแบบไดนามิกในรูปแบบใด ๆ เป็นเพียงแฟล็กเพื่อระบุว่าเมื่อ ACL ของไดเร็กทอรีพาเรนต์ถูกแก้ไขไฟล์และไดเร็กทอรีย่อยทั้งหมดในแผนผังที่มีชุดแฟล็กสืบทอดที่ต้องอัพเดตด้วย
พวกเราที่มีอายุมากพอที่จะจดจำ Novell NetWare จะจำได้ว่านี่เป็นหนึ่งในความแตกต่างที่ยิ่งใหญ่จาก NetWare เพราะในการสืบทอดสิทธิ์ของ NetWare นั้นเป็นแบบไดนามิก (คือ?) มีการถกเถียงกันอย่างมากในเวลาที่วิธีการใดดีกว่าแม้ว่าประวัติศาสตร์ได้แสดงให้เห็นถึงปัญหาที่สงสัย Dynamic ACL ต้องการให้ระบบปฏิบัติการตรวจสอบ ACL ของทุกพาเรนต์ไดเร็กทอรีในเวลาที่พยายามเปิดไฟล์ แต่การเปลี่ยน ACLs นั้นรวดเร็ว ในไฟล์เปิดของ Windows ต้องมีการตรวจสอบ ACL เพียงครั้งเดียว แต่เนื่องจากคุณพบว่าหมายถึงการเปลี่ยนไดเรกทอรี ACL อาจทำได้ช้า
วัตถุลูกใด ๆ ที่ได้รับการกำหนดค่าให้สืบทอดสิทธิ์จากวัตถุแม่จะต้องถูกประมวลผล สิทธิ์ที่กำหนดไว้อย่างชัดเจนบนวัตถุลูกจะไม่ได้รับผลกระทบ
ตัวเลือก“ แทนที่สิทธิ์บนวัตถุลูกทั้งหมด” จะไม่เพียง แต่เผยแพร่สิทธิ์ไปยังวัตถุลูกทั้งหมด แต่ยังจะลบและแทนที่สิทธิ์ที่กำหนดไว้อย่างชัดเจนในวัตถุลูกทั้งหมด
โดยค่าเริ่มต้นโฟลเดอร์ลูกสืบทอดสิทธิ์จากโฟลเดอร์หลัก สมมติว่าขอบเขตเริ่มต้นเมื่อคุณเพิ่ม / แก้ไขสิทธิ์ในโฟลเดอร์พาเรนต์ (โฟลเดอร์นี้โฟลเดอร์ย่อยและไฟล์) จากนั้นโฟลเดอร์ย่อยทั้งหมดจะได้รับการอัปเดตเพื่อแสดงการเปลี่ยนแปลงการอนุญาตที่พาเรนต์
ช่องทำเครื่องหมายที่คุณอ้างถึงเป็นการดำเนินการ "ครั้งเดียว" ที่จะลบสิทธิ์ที่กำหนดไว้อย่างชัดเจนทั้งหมดในโฟลเดอร์ลูกทั้งหมดและแทนที่ด้วยสิทธิ์ที่สืบทอดได้จากผู้ปกครองและจะเปิดใช้งานการสืบทอดสิทธิ์ในโฟลเดอร์ลูกอีกครั้ง