ความแตกต่างระหว่าง chmod กับ ACL


13

ฉันเข้าใจchmodและchownบิตการอนุญาตทำงานอย่างไร แต่มีระบบการอนุญาตอื่นภายใน Linux ACLด้วยsetfaclและgetfaclสิ่งนี้ทำให้ฉันสงสัย

อะไรคือความแตกต่างระหว่างระบบควบคุมการอนุญาตทั้งสองระบบ พวกเขารบกวนซึ่งกันและกันหรือไม่?

คำตอบ:


7

หนึ่งไม่ดีกว่าอื่น ๆ พวกเขาเป็นเพียงวิธีการต่าง ๆ และวิธีคิด

คุณสามารถใช้ระบบการอนุญาตทั้งสองบนเส้นทางเดียวกันโดยไม่มีปัญหา

พวกเขาแทรกแซงซึ่งกันและกันเมื่อแก้ไขกลุ่มเจ้าของและสิทธิ์อื่น ๆ ของเจ้าของ: เมื่อตั้งค่าปัจจุบันสำหรับสิ่งเหล่านี้จาก setfacl จริง ๆ แล้วมันจะตั้งค่าสิทธิ์ posix ไม่ใช่ ACL

สิทธิ์ Posix อนุญาตเฉพาะเจ้าของกลุ่มที่เป็นเจ้าของและสิทธิ์ "ทุกคน" ในขณะที่ ACL อนุญาตให้ผู้ใช้และกลุ่ม "เจ้าของ" หลายคน ACL ยังอนุญาตให้ตั้งค่าการอนุญาตเริ่มต้นสำหรับไฟล์ใหม่ในโฟลเดอร์

คุณสามารถเพิ่มการจัดการสิทธิ์เพิ่มเติมที่ด้านบนของทั้งคู่ด้วย apparmor หรือ selinux เพื่อการควบคุมที่เข้มงวดยิ่งขึ้น


1
ฉันถูกต้องโดยสมมติว่าเมื่อฉันเรียกใช้ls -lฉันจะได้เห็นการอนุญาตให้โพสต์และ ACL ที่ จำกัด ไฟล์ต่อไปจะไม่แสดง? หรือสิทธิ์ของ posix จะได้รับการเคารพหรือไม่
mFeinstein

3
@mFeinstein ขึ้นอยู่กับ ภายใต้ Linux ให้ls -lใส่ a +ท้ายอักขระการอนุญาตเพื่อระบุว่ามี ACL ถ้ามี ACL อยู่แล้วการอนุญาตพื้นฐานจะไม่บอกเรื่องราวทั้งหมด: ACL จะแทนที่การอนุญาต POSIX
Gilles 'ดังนั้น - หยุดความชั่วร้าย'

โอ้เยี่ยมมาก! ว่า+อย่างน้อยจะหยุดฉันจากการปิดตัวเองยาม
mFeinstein

3

สิทธิ์ Unix แบบคลาสสิกที่กำหนดโดย chmod (อ่าน / เขียน / ดำเนินการผู้ใช้ / กลุ่ม / อื่น ๆ ) มีอยู่นานกว่า ACL มาก หาก ACL มีอยู่ตั้งแต่เริ่มต้นแล้วจะไม่มี chmod อย่างที่เรารู้ อย่างไรก็ตาม, เนื่องจาก chmod มีอยู่เป็นเวลานาน, หลาย ๆ แอปพลิเคชั่นเรียกมัน, รูปแบบไฟล์เก็บถาวรจำนวนมากสนับสนุนสิทธิ์แบบคลาสสิก, ฯลฯ คุณสามารถแสดงสิทธิ์ chmod ด้วย ACL; พวกเขาทำหน้าที่เป็นจุดเริ่มต้นสำหรับ ACL

ดูความสำคัญของผู้ใช้และเจ้าของกลุ่มในการอนุญาตให้ใช้ไฟล์และความสำคัญของ ACLS เมื่อผู้ใช้อยู่ในหลายกลุ่มเพื่อรับการรักษาโดยละเอียดเกี่ยวกับวิธีการควบคุมการเข้าถึงใน ACL

chmodคำสั่งยังควบคุมธงบางอย่างที่ไม่ได้จริงๆสิทธิ์ แต่มักจะเรียกว่าสิทธิ์กระนั้น: setuid, setgidและเหนียวเล็กน้อย สิ่งเหล่านี้ไม่ได้รับอนุญาตเนื่องจากไม่มีผลกระทบต่อการเข้าถึงที่ได้รับอนุญาตในไฟล์ แต่วิธีการทำงานบางอย่างของไฟล์หลังจากที่ได้รับอนุญาต ไม่มีอะไรเช่นนี้กับ ACL


ดังนั้นเพื่อที่จะเข้าใจการอนุญาตของไฟล์ฉันต้องตรวจสอบทั้ง ACL และls -l?
mFeinstein

มีวิธีดูว่ามีสิทธิ์เฉพาะ ACL ในไฟล์ / ไดเรกทอรีหรือไม่
mFeinstein

@mFeinstein ดูว่าสิทธิ์ที่แสดงโดยlsมี+ส่วนท้ายหรือเรียกใช้getfaclคำสั่งเพื่อแสดงสิทธิ์ทั้งหมดรวมถึง ACL
Gilles 'หยุดความชั่วร้าย'

1
เพียงแค่getfacl myFile?
mFeinstein

1
ใช่ getfacl บนเส้นทางที่คุณต้องการตรวจสอบ
Zulgrib
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.