ใช่ ACL: อนุญาตการตั้งค่าสิทธิ์ที่แตกต่างกันอย่างอิสระให้กับผู้ใช้หรือกลุ่มต่างๆ IIRC สิทธิ์กลุ่มปกติ จำกัด ชุดสิทธิ์ที่กลุ่มและผู้ใช้สามารถมีได้ผ่าน ACL: s (แสดงmask
ในgetfacl
) แต่setfacl
ควรจัดการกับสิ่งนั้นหากคุณเพิ่มสิทธิ์
แต่ในบางกรณีคุณจำเป็นต้องถามว่าชุดการอนุญาตนั้นสมเหตุสมผลหรือไม่
ฉันมี 3 ผู้ใช้ที่มีสิทธิ์ที่ต้องการเหล่านี้ ....
- user1 rwx
- user2 rw_
- user3 r__
คุณสามารถใช้สิ่งนี้กับ ACL: s หรือ (โดยประมาณ) ด้วยสิทธิ์ Unix ตามปกติโดยการทำให้ user1 เป็นเจ้าของไฟล์นั้น user2 เป็นสมาชิกของกลุ่มและให้ผู้อื่นรวมถึง user3 สามารถเข้าถึงการอ่านได้ แม้ว่าทุกคน (ที่มีการเข้าถึงไดเรกทอรี) ก็จะมีสิทธิ์อ่านด้วย
ลองพิจารณาความหมายของการอนุญาตเหล่านั้น คุณมีผู้ใช้หนึ่งคนที่สามารถอ่านและอีกคนที่สามารถอ่านและเขียนได้ นั่นเป็นเรื่องปกติ สิ่งเหล่านี้ไม่มีสิทธิ์เข้าถึงเพื่อเรียกใช้งานไฟล์ แต่จากนั้นผู้ใช้รายที่สามก็ควรจะสามารถทำเช่นนั้นได้เช่นกัน
นั่นไม่สมเหตุสมผลในใจของฉัน ผู้ใช้ทุกคนที่สามารถอ่านไฟล์สามารถทำสำเนา (*) ทำเครื่องหมายไฟล์ที่เรียกใช้และเรียกใช้โดยไม่ต้องเรียกใช้ไฟล์ต้นฉบับ สถานการณ์เดียวที่เหมาะสมที่จะมีการเรียกใช้งานการเข้าถึงสำหรับผู้ใช้บางคน แต่ไม่ใช่สำหรับผู้อื่นคือเมื่อไฟล์ที่เรียกทำงานได้มีสิทธิ์ยกระดับผ่าน suid แต่ถ้าเป็นเช่นนั้นคุณไม่ควรมีผู้ใช้รายอื่นที่มีสิทธิ์เขียนเพื่อเข้าถึงไฟล์
ในความหมายเดียวกัน user4 with -wx
และ user5 with --x
ไม่สมเหตุสมผลกับฉัน การเข้าถึงแบบเขียนอย่างเดียวอาจเหมาะสมถ้ามีความเป็นไปได้ที่จะอนุญาตให้ผนวกเท่านั้น แต่ระบบการอนุญาตนั้นไม่ใช่สิ่งที่ละเอียด
(* ยกเว้นว่าพวกเขาไม่สามารถเขียนได้ทุกที่)
แม้ว่าหากเราลบข้อกำหนดแปลก ๆ สำหรับx
บิตเราก็เหลือไฟล์ที่ user1 และ user2 ควรมีสิทธิ์การเขียนและ user3 ควรมีสิทธิ์อ่าน นักเขียนและผู้อ่านหลายคนจะง่ายกับโมเดลดั้งเดิม แต่ในกรณีนี้จะต้องมีเทคนิคในการรวมสิทธิ์การใช้ไฟล์กับสิทธิ์ของไดเรกทอรีที่มี โชคดีที่ในหลายกรณีมีผู้ใช้รายหนึ่งที่มีสิทธิ์มากกว่าเพียงพอ
หากไม่มีข้อกำหนดเกี่ยวกับบิตเรียกใช้งานดูเหมือนว่ากรณีที่จะใช้ ACL: s แต่ด้วยตัวอย่างนี้ดูเหมือนว่าค่อนข้างจะซับซ้อนสำหรับฉัน