สิทธิ์ NTFS - สร้างไฟล์และโฟลเดอร์ แต่ป้องกันการลบและการปรับเปลี่ยน


10

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

ฉันให้สิทธิ์ความปลอดภัย NTFS ขั้นสูงต่อไปนี้กับกลุ่มความปลอดภัยของฉัน:

  • สำรวจโฟลเดอร์ / เรียกใช้ไฟล์
  • รายการโฟลเดอร์ / อ่านข้อมูล
  • อ่านคุณสมบัติ
  • อ่านคุณสมบัติเพิ่มเติม
  • สร้างไฟล์ / เขียนข้อมูล
  • อ่านสิทธิ์

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

แก้ไข - ส่วนที่สองของคำถามของฉันไม่เกี่ยวข้องฉันคิดว่าฉันเลือก 'สร้างไฟล์ / เขียนข้อมูล' เท่านั้น แต่ฉันก็เลือก 'สร้างโฟลเดอร์ / ข้อมูลผนวก' ด้วยเช่นกัน

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

โดยพื้นฐานแล้วฉันได้รับสิ่งที่ฉันตั้งใจจะทำ แต่ไม่เข้าใจว่าทำไมมันถึงใช้ได้


เนื้อหาของไฟล์ NTFS คือ "attribute"; คือแอตทริบิวต์ข้อมูลที่ไม่มีชื่อเริ่มต้นและอาจมีข้อมูลอย่างน้อยหนึ่งรายการที่มีชื่อ
kreemoweet

ดูคำตอบที่ดีที่นี่: superuser.com/a/1145363/132727
CrazyTim

คำตอบ:


7

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

นี่คือหน้าที่ของการปรับเปลี่ยนไฟล์ที่เกิดขึ้นอย่างแม่นยำ เมื่อคุณแก้ไขไฟล์ระบบปฏิบัติการจะไม่แก้ไขไฟล์ที่คุณกำลังแก้ไข มันจะแทนที่ไฟล์ที่คุณแก้ไขด้วยสำเนาที่คุณเปลี่ยนแปลง ดังนั้นโดยพื้นฐานแล้วการแก้ไขไฟล์จะคัดลอกไฟล์ต้นฉบับโหลดลงในหน่วยความจำ (ที่คุณแก้ไข) ลบไฟล์ต้นฉบับและสร้างไฟล์ใหม่ที่มีชื่อเดียวกันในที่เดียวกัน นี่คือเหตุผลDeleteที่จำเป็นต้องใช้สิทธิ์NTFS เพื่อแก้ไขไฟล์ - ในความเป็นจริงถ้าคุณตรวจสอบAdvanced permissionsบนวัตถุ NTFS ไม่มีModifyสิทธิ์ - การดัดแปลงเป็นเพียงการลบและการเขียน

ดังนั้นเพื่อสร้างสำเนาใหม่ของไฟล์มันจะต้องเขียนคุณสมบัติไฟล์ของไฟล์ใหม่นี้ ... และแน่นอนว่าการเขียนคุณสมบัติต้องWrite attributesได้รับอนุญาตจาก NTFS ดังนั้นนี่คือสาเหตุที่คุณไม่สามารถแก้ไขไฟล์โดยไม่ได้Write attributesรับอนุญาตจาก NTFS

โดยเฉพาะต้องขอบคุณการสนทนากับ Fitzroyที่แอตทริบิวต์แฟ้ม NTFSว่าความต้องการที่จะเขียนภายใต้บริบทการรักษาความปลอดภัยของผู้ใช้ (ที่ไม่สามารถโดยไม่Write Attributesได้รับอนุญาต) เมื่อการแก้ไขไฟล์ แต่ไม่เมื่อมีการสร้างขึ้นมาใหม่อย่างสมบูรณ์จะ เป็นของไฟล์ LastModificationTimeนี่คือส่วนหนึ่งของStandard Informationแอตทริบิวต์ตามหนึ่งในนักพัฒนาที่ไมโครซอฟท์คอร์ทีม


1
"นี่คือสาเหตุที่จำเป็นต้องใช้สิทธิ์การลบ NTFS เพื่อแก้ไขไฟล์ - ในความเป็นจริงถ้าคุณตรวจสอบสิทธิ์ขั้นสูงในวัตถุ NTFS จะไม่มีสิทธิ์แก้ไข - การดัดแปลงเป็นเพียงการลบและการเขียน" คุณสามารถสนับสนุนด้วยข้อเท็จจริงหรือการอ้างอิงได้หรือไม่? เนื่องจากผ่านการทดสอบเพิ่มเติมฉันพบว่าเพื่อปรับเปลี่ยนเนื้อหาของไฟล์ข้อความอย่างง่าย (โดยใช้ notepad) ฉันเพิ่งเพิ่มสิทธิ์ต่อไปนี้: เขียนคุณสมบัติเขียนคุณสมบัติขยายเขียนและสร้างข้อมูลโฟลเดอร์ / ผนวก ฉันยอมรับว่าโปรแกรมที่แตกต่างกันอาจมีลักษณะการทำงานที่แตกต่างกันเมื่อแก้ไขไฟล์ ...
Fitzroy

... อย่างไรก็ตามฉันคิดว่าการทดสอบนี้พิสูจน์ว่าไม่ต้องการ 'ลบ'
Fitzroy

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

3

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

สำหรับคำถามที่สองของคุณฉันไม่สามารถทำซ้ำได้ มีการอนุญาตที่แตกต่างกันสองแบบสำหรับโฟลเดอร์: 'สร้างไฟล์ / ... ' และ 'สร้างโฟลเดอร์ / ... ' และทำงานตามเอกสารในระหว่างการทดสอบของฉัน


Drk - แยกย่อยคำตอบของคุณ FYI - ฉันไม่ได้รับอนุญาตในคำถามของฉันฉันควรจะแสดงรายการ 'อ่านคุณสมบัติเพิ่มเติม' หากไม่ได้รับอนุญาตฉันพบว่าผู้ใช้ไม่สามารถดูเนื้อหาของไฟล์ (พวกเขาได้รับข้อผิดพลาด 'การเข้าถึงถูกปฏิเสธ') ฉันได้อัปเดตคำถามของฉันแล้ว
Fitzroy

โอเคสำหรับการทดสอบของฉันฉันคิดว่าคุณได้รับอนุญาตด้วยเช่นกัน ฉันพบว่าnotepadไม่สามารถแก้ไขไฟล์ได้แม้จะได้รับอนุญาตจาก '... / write data' นี่คืออีกหนึ่งสิ่งที่ควรค่าแก่การจดบันทึก: การเขียนข้อมูลเทียบกับการอนุญาตให้ผนวกข้อมูลขึ้นอยู่กับว่าแอปพลิเคชันของคุณเปิดไฟล์สำหรับการปรับเปลี่ยนอย่างไร Notepad ส่วนใหญ่อาจเปิดไฟล์เพื่อต่อท้ายข้อมูลเสมอแม้ว่าจะไม่จำเป็นก็ตาม
drk.com.ar

สำหรับคำถามที่สองของคุณฉันไม่สามารถทำซ้ำได้ มีการอนุญาตที่แตกต่างกันสองแบบสำหรับโฟลเดอร์: 'สร้างไฟล์ / ... ' และ 'สร้างโฟลเดอร์ / ... ' และทำงานตามเอกสารในระหว่างการทดสอบของฉัน คุณคิดถูกแล้วฉันคิดว่าฉันได้เลือก 'สร้างไฟล์ / ข้อมูลการเขียนเท่านั้น' แต่ฉันก็เลือก 'สร้างโฟลเดอร์ / ข้อมูลผนวก' ด้วยเช่นกัน
Fitzroy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.