สิ่งคือฉันคิดเสมอว่าการอนุญาตเหล่านี้ล้มเหลวซึ่งกันและกันโดยเริ่มจากการใช้งานทั่วไปมากที่สุด (อื่น ๆ -> กลุ่ม -> ผู้ใช้)
หากเป็นกรณีนั้นสิทธิ์“ อื่น ๆ ” จะมีผลกับทุกคน
กล่าวอีกนัยหนึ่งถ้า o = rwx ใครสนใจสิ่งที่ persmissions สำหรับกลุ่มและผู้ใช้คืออะไร
มันแตกต่างจากประโยคก่อนหน้าของคุณ ในที่นี้คุณหมายถึงว่าสิทธิ์นั้นได้รับการเชื่อมโยงหรือกันเช่น userX นั้นมีสิทธิ์อ่านถ้า userX เป็นเจ้าของไฟล์และไฟล์นั้นเป็นไฟล์ที่ผู้ใช้อ่านได้หรือหากกลุ่มที่ userX เป็นเจ้าของเป็นเจ้าของไฟล์และไฟล์เป็นกลุ่ม - อ่านได้หรือถ้าไฟล์อ่านได้อื่น แต่นั่นไม่ใช่วิธีการทำงาน ในความเป็นจริงo=rwx
หมายความว่าrwx
สิทธิ์ใช้กับผู้อื่น แต่ไม่ได้พูดอะไรเกี่ยวกับเอนทิตีที่ไม่ใช่ของผู้อื่น
ครั้งแรกมันไม่สำคัญว่ากลุ่มผู้ใช้เป็นของโดยตรง เคอร์เนลไม่มีความเห็นของผู้ใช้ที่อยู่ในกลุ่ม สิ่งที่เคอร์เนลดูแลคือทุก ID ผู้ใช้ ( UID ที่มีผลบังคับใช้ ) และรายการของID กลุ่ม (GID ที่มีประสิทธิภาพและ GID เสริม) กลุ่มจะถูกกำหนดในเวลาเข้าสู่ระบบโดยกระบวนการเข้าสู่ระบบ - เป็นกระบวนการเข้าสู่ระบบที่อ่านฐานข้อมูลกลุ่ม (เช่น/etc/group
) ID ผู้ใช้และกลุ่มได้รับการสืบทอดโดยกระบวนการลูก¹
เมื่อกระบวนการพยายามเปิดไฟล์ด้วยสิทธิ์ Unix แบบดั้งเดิม:
- หากผู้ใช้ที่เป็นเจ้าของไฟล์เป็น UID ที่มีประสิทธิภาพของกระบวนการดังนั้นจะมีการใช้บิตสิทธิ์ผู้ใช้
- มิฉะนั้นหากกลุ่มที่เป็นเจ้าของไฟล์เป็น GID ที่มีประสิทธิภาพของกระบวนการหรือหนึ่งใน ID กลุ่มเสริมของกระบวนการแล้วจะมีการใช้บิตสิทธิ์ของกลุ่ม
- มิฉะนั้นจะใช้บิตสิทธิ์อื่น ๆ
มีการใช้บิต rwx เพียงชุดเดียวเท่านั้น ผู้ใช้มีความสำคัญเหนือกว่ากลุ่มซึ่งมีความสำคัญเหนือกว่ากลุ่มอื่น เมื่อมีรายการควบคุมการเข้าถึงอัลกอริทึมที่อธิบายไว้ข้างต้นจะเป็นแบบทั่วไป:
- หากมี ACL ในไฟล์สำหรับ UID ที่มีประสิทธิภาพของกระบวนการจะมีการใช้เพื่อกำหนดว่าจะให้สิทธิ์การเข้าถึงหรือไม่
- มิฉะนั้นหากมี ACL ในไฟล์สำหรับ GID ที่มีประสิทธิภาพของกระบวนการหรือหนึ่งใน ID กลุ่มเสริมของกระบวนการกระบวนการนั้นจะใช้บิตสิทธิ์ของกลุ่ม
- มิฉะนั้นจะใช้บิตสิทธิ์อื่น ๆ
ดูเพิ่มเติมที่ลำดับความสำคัญของ ACLS เมื่อผู้ใช้อยู่ในหลายกลุ่มสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้รายการ ACL รวมถึงผลกระทบของมาสก์
ดังนั้นจึง-rw----r-- alice interns
ระบุว่าไฟล์ใดที่อลิซสามารถอ่านและเขียนได้และผู้ใช้รายอื่นสามารถอ่านได้ยกเว้นผู้ฝึกงาน ไฟล์ที่มีสิทธิ์และความเป็นเจ้าของ----rwx--- alice interns
สามารถเข้าถึงได้เฉพาะกับผู้ฝึกงานยกเว้นอลิซ (ไม่ว่าเธอจะเป็นผู้ฝึกงานหรือไม่ก็ตาม) เนื่องจากอลิซสามารถโทรติดต่อchmod
เพื่อเปลี่ยนการอนุญาตนี้จึงไม่ให้ความปลอดภัยใด ๆ มันเป็นกรณีที่ขอบ บนระบบที่มี ACL กลไกทั่วไปจะอนุญาตให้ลบสิทธิ์ออกจากผู้ใช้หรือกลุ่มเฉพาะซึ่งบางครั้งก็มีประโยชน์
การใช้บิตชุดเดียวแทนที่จะเป็นบิตทั้งหมดสำหรับแต่ละการกระทำ (อ่านเขียนดำเนินการ) มีข้อดีหลายประการ:
- มันมีผลประโยชน์ของการอนุญาตให้ลบสิทธิ์จากชุดของผู้ใช้หรือกลุ่มบนระบบที่มี ACL บนระบบที่ไม่มี ACLs สิทธิ์สามารถถูกลบออกจากกลุ่มหนึ่ง
- เป็นการง่ายกว่าที่จะใช้งาน: ตรวจสอบบิตหนึ่งชุดแทนที่จะรวมหลายบิตเข้าด้วยกัน
- มันง่ายกว่าในการวิเคราะห์การอนุญาตของไฟล์เนื่องจากมีการดำเนินการน้อยกว่า
¹ พวกเขาสามารถเปลี่ยนแปลงได้เมื่อดำเนินการตามกระบวนการsetuidหรือ setgid สิ่งนี้ไม่เกี่ยวข้องกับปัญหาที่เกิดขึ้น