ตอนแรกฉันสร้างไฟล์และตรวจสอบว่าเป็นสิทธิ์มาตรฐานและรายการ ACL:
$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
จากนั้นฉันจะตั้งค่าหน้ากาก ACL บนไฟล์และตรวจสอบอีกครั้งว่าเป็นสิทธิ์มาตรฐานและรายการ ACL:
$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
โปรดทราบว่าพร้อมกับสิทธิ์กลุ่มมาตรฐานหน้ากาก ACL ในไฟล์ก็เปลี่ยนไป
- การเชื่อมต่อใดที่มีอยู่ระหว่าง ACL mask และสิทธิ์กลุ่มมาตรฐาน?
- เหตุผลของการมีเพศสัมพันธ์ ACL หน้ากากและสิทธิ์กลุ่มไฟล์คืออะไร? ตรรกะอะไรที่อยู่ข้างหลังมัน?
การแจกแจงในคำถามคือ Debian Linux 7.6 และ CentOS 7
แก้ไข
เมื่อมาถึงจุดนี้ฉันแค่ต้องการแบ่งปันสิ่งที่ฉันค้นพบขณะที่ทำการค้นคว้าความสัมพันธ์ระหว่างการอนุญาตกลุ่มไฟล์มาตรฐานและมาสก์ ACL นี่คือการสังเกตเชิงประจักษ์ที่ฉันพบ:
หน้ากาก ACL สามารถเปลี่ยนแปลงได้:
- โดยการตั้งค่าโดยตรงด้วย
setfacl -m m:<perms>
คำสั่ง; - โดยการเปลี่ยนการอนุญาตกลุ่มไฟล์ด้วย
chmod
คำสั่ง (ถ้ามีหน้ากาก ACL อยู่แล้วอาจไม่ปรากฏเพราะเป็นทางเลือกถ้าไม่มีผู้ใช้ที่มีชื่อหรือสิทธิ์การใช้กลุ่ม ACL ในไฟล์); - โดยการเพิ่มชื่อผู้ใช้หรือรายการ ACL กลุ่ม (มาสก์จะถูกคำนวณใหม่โดยอัตโนมัติ)
- โดยการตั้งค่าโดยตรงด้วย
มาสก์จะบังคับใช้สิทธิ์การเข้าถึงสูงสุด (หากมีรายการ ACL ที่มีการอนุญาตที่เกินกว่าการอนุญาตให้ใช้หน้ากาก ACL) เฉพาะเมื่อมีการตั้งค่ามาสก์โดยตรงโดย setfacl หรือโดยการแก้ไขการอนุญาตกลุ่มไฟล์ด้วย chmod (ไม่ใช่การคำนวณอัตโนมัติ) การเปลี่ยนแปลงใด ๆ ในรายการ ACL จะทริกเกอร์การคำนวณใหม่โดยอัตโนมัติของ ACL mask และปิดโหมด "บังคับใช้" อย่างมีประสิทธิภาพ
มีผลข้างเคียงสองสามอย่างโดยนัยที่มีผลต่อสิทธิ์กลุ่มไฟล์มาตรฐานเมื่อใช้ ACLs:
- ชื่อผู้ใช้หรือรายการ ACL กลุ่มที่ใช้กับไฟล์สามารถเปลี่ยนรูปแบบ ACL (เพิ่มสิทธิ์มัน) และด้วยเหตุนี้การอนุญาตกลุ่มไฟล์ที่มีประสิทธิภาพ ตัวอย่างเช่นหากคุณในฐานะเจ้าของไฟล์มีสิทธิ์ "rw-r - r-- jim students" ตั้งอยู่บนนั้นและคุณให้สิทธิ์ rw แก่ผู้ใช้ "แจ็ค" ด้วยคุณจะต้องให้สิทธิ์ rw แก่ผู้อื่นโดยปริยาย จากกลุ่ม "นักเรียน"
- รูปแบบที่เข้มงวด (สิทธิ์น้อยกว่า) ACL mask สามารถลบสิทธิ์กลุ่มไฟล์มาตรฐานที่เกี่ยวข้องได้อย่างถาวร เช่นถ้าคุณมีไฟล์ที่มีสิทธิ์กลุ่มไฟล์มาตรฐาน rw และคุณใช้หน้ากาก ACL แบบอ่านอย่างเดียวกับไฟล์การอนุญาตกลุ่มจะลดลงเป็นแบบอ่านอย่างเดียว จากนั้นหากคุณลบรายการ ACL ที่ขยายทั้งหมด (พร้อม
setfacl -b
คำสั่ง) สิทธิ์ของกลุ่มจะยังคงเป็นแบบอ่านอย่างเดียว สิ่งนี้ใช้ได้เฉพาะกับรูปแบบที่เข้มงวดของ ACL, รูปแบบที่อ่อนนุ่มของ ACL (การอนุญาตเพิ่มเติม) จะไม่เปลี่ยนแปลงการอนุญาตกลุ่มไฟล์ดั้งเดิมอย่างถาวรหลังจากลบออก