ฉันได้อธิบายเรื่องนี้ในบล็อกโพสต์http://think-like-a-computer.com/2011/07/24/moving-files-on-the-same-ntfs-volume-does-inherit-permissions/แต่มัน ยังอธิบายไว้ด้านล่าง
เมื่อมีการคัดลอกไฟล์มันจะต้องสร้างไฟล์ใหม่และกำหนดสิทธิ์ใหม่ให้ดังนั้นมันจะได้รับการอนุญาตจากโฟลเดอร์แม่อย่างที่คุณรู้
เมื่อไฟล์ถูกย้ายไปที่โวลุ่มอื่นสิ่งที่เกิดขึ้นจริงคือมันถูกคัดลอกไปยังโวลุ่มใหม่และไฟล์เก่าจะถูกลบ ดังนั้นกระบวนการเดียวกันจะทำซ้ำดังกล่าวข้างต้นเนื่องจากเป็นไฟล์ใหม่อีกครั้งและต้องมีการกำหนดสิทธิ์
เมื่อไฟล์ถูกย้ายภายในโวลุ่มเดียวกันไม่มีอะไรเกิดขึ้นจริง (ที่ระดับดิสก์) มันแค่เปลี่ยนตำแหน่งโลจิคัลพา ธ ของไฟล์ ข้อมูลจริงและฟิสิคัลไฟล์บนดิสก์ไม่ได้ถูกแตะต้องหรือเปลี่ยนแปลง เคยสังเกตไหมว่าเมื่อคุณย้ายไฟล์ขนาด 5GB ไปยังโฟลเดอร์อื่นบนไดรฟ์เดียวกันมันจะทำในทันที? นี่คือสาเหตุเพราะจริง ๆ แล้วมันไม่ได้ย้าย แต่ตัวชี้ไปยังตำแหน่งที่ไฟล์มีอยู่มีการเปลี่ยนแปลง เนื่องจากมันไม่ได้ถูกดัดแปลง แต่อย่างใดการอนุญาตก็ไม่เปลี่ยนแปลงเช่นกัน
นี่คือเหตุผลสำหรับพฤติกรรมนี้
แก้ไข: สิ่งที่ฉันลืมพูดถึง ... บทความ MS ไม่ถูกต้องทั้งหมด อ้าง MS:
โดยค่าเริ่มต้นวัตถุสืบทอดการอนุญาตจากวัตถุหลักไม่ว่าจะในเวลาที่สร้างหรือเมื่อมีการคัดลอกหรือย้ายไปยังโฟลเดอร์หลัก ข้อยกเว้นเฉพาะกฎนี้เกิดขึ้นเมื่อคุณย้ายวัตถุไปยังโฟลเดอร์อื่นบนไดรฟ์ข้อมูลเดียวกัน ในกรณีนี้การอนุญาตดั้งเดิมจะยังคงอยู่
คำพูดข้างต้นใช้กับวัตถุที่ได้รับการอนุญาตที่กำหนดไว้อย่างชัดแจ้งเท่านั้น (ปิดการสืบทอด) ดังที่ได้กล่าวไว้ในความคิดเห็นของฉันมันคือทั้งหมดที่เกี่ยวกับการรักษารายการ ACL ให้มีประสิทธิภาพมากที่สุด ลองพิจารณาตัวอย่างต่อไปนี้:
เพื่อให้คำอธิบายง่าย ๆ สมมติว่าคุณมีชุดโฟลเดอร์ที่อนุญาตให้ผู้ใช้แก้ไขสิทธิ์เท่านั้น ด้านล่างนี้มีไฟล์นับพันไฟล์และไม่มีไฟล์ใดที่มีการอนุญาตที่ชัดเจน การสร้าง ACLs สำหรับแต่ละไฟล์นั้นไม่ได้มีประสิทธิภาพมากนักเพราะมันเป็นแบบเดียวกันกับที่กำหนดดังนั้นจึงตั้งค่าหนึ่งรายการ ACL สำหรับโฟลเดอร์ บิตถัดไปนี้สำคัญมากที่จะเข้าใจ ไฟล์เองไม่มี ACL PERMS ดังนั้นเมื่อคุณย้ายไฟล์ใด ๆ เหล่านี้ไปยังโฟลเดอร์ใหม่ในปริมาณเดียวกัน MS อ้างว่า perms ย้ายไปกับมัน (ตามที่ระบุไว้ข้างต้น) ถามตัวเองว่านี้ .... ได้อย่างไร ไม่มีการเปิดไฟล์ในครั้งแรกที่จะย้ายข้าม สิ่งนี้ไม่ถูกต้องและฉันเพิ่งทดสอบตอนนี้เพื่อยืนยัน สมมติว่าโฟลเดอร์ปลายทางที่คุณกำลังย้ายไฟล์มี perms เพื่อให้สิทธิ์การแก้ไขกลุ่มทุกคนเท่านั้น เนื่องจากไฟล์ไม่มี ACL โดยตรงจึงสืบทอด ACL ของโฟลเดอร์พาเรนต์ ซึ่งหมายความว่า perms มีการเปลี่ยนแปลงจากผู้ใช้แก้ไข (โฟลเดอร์เก่า) เพื่อทุกคนแก้ไข (โฟลเดอร์ใหม่)
สังเกตเห็นความแตกต่าง ?? ในครั้งนี้การย้ายไฟล์ไปยังโฟลเดอร์อื่นในโวลุ่มเดียวกันนั้นได้เปลี่ยน perms แล้วสิ่งที่ MS บอกว่ามันไม่ได้ทำ ฉันเพิ่งพบข้อผิดพลาดในเอกสาร MS ตั้งแต่ 2000 lol?
ตอนนี้ดูสถานการณ์เดียวกันเมื่อใช้สิทธิ์ที่ชัดเจน หากคุณตั้งค่าการอนุญาตที่ชัดเจนในไฟล์ภายในโฟลเดอร์นี้ (ปิดการสืบทอด) ซึ่งตัวอย่างเช่นปฏิเสธการเข้าถึงของผู้ใช้ตอนนี้จะสร้างรายการ A ACL ใหม่สำหรับไฟล์นี้โดยเฉพาะ ตอนนี้เมื่อคุณย้ายไฟล์ไปยังตำแหน่งใหม่มันมีรายการ ACL ที่เกี่ยวข้องโดยตรง ในกรณีนี้การย้ายไฟล์ไปยังตำแหน่งใหม่ในไดรฟ์ข้อมูลเดียวกัน RETAINS การอนุญาต (ตามที่ MS อ้าง)!