ฉันจะรู้ได้อย่างไรว่า ACL รองรับระบบไฟล์ของฉัน


14

มันเพียงพอที่จะเห็นว่าgetfaclไม่มีข้อผิดพลาดหรือฉันต้องตรวจสอบที่อื่นเพื่อดูว่า ACLs รองรับระบบไฟล์หรือไม่?

คำตอบ:


8

หากคุณกำลังพูดถึงระบบไฟล์ที่ติดตั้งอยู่ฉันไม่ทราบวิธีที่แท้จริงที่จะบอกว่า ACL นั้นเป็นไปได้หรือไม่ ทราบว่า“ รองรับ ACL หรือไม่” ไม่ใช่คำถามที่แม่นยำมากเพราะมี ACL หลายประเภท (Solaris / Linux / ไม่ใช่-POSIX-after-all, NFSv4, OSX, …) โปรดทราบว่าgetfaclการทดสอบนั้นไม่มีประโยชน์เนื่องจากจะรายงานสิทธิ์ Unix อย่างมีความสุขหากมี: คุณต้องลองตั้งค่า ACL เพื่อทดสอบ

ยังคงอยู่ในระบบไฟล์ที่ติดตั้งอยู่คุณสามารถตรวจสอบสถานะของaclตัวเลือกการเมานท์ (ซึ่งคุณสามารถหาได้/proc/mount) โปรดทราบว่านี่ไม่เพียงพอ: คุณต้องพิจารณาเวอร์ชันเคอร์เนลและประเภทระบบไฟล์ด้วย ระบบไฟล์บางชนิดมี ACL ให้ใช้งานเสมอ นี่เป็นกรณีสำหรับ tmpfs, xfs และ zfs ระบบไฟล์บางระบบมี ACL ยกเว้นว่าถูกแยกออกอย่างชัดเจน เป็นกรณีนี้สำหรับ ext4 ตั้งแต่เคอร์เนล 2.6.39


สำหรับการgetfaclทดสอบที่คุณพูดถูก ยกเว้นถ้าฉันสามารถหา ACL ที่ไม่ใช่ค่าเริ่มต้น (โดยการระงับค่าเริ่มต้นและส่วนหัว) ตรวจสอบ/proc/mountไม่ได้ดูเหมือนจะเพียงพอในกรณีที่aclตัวเลือกเป็นตัวเลือกเริ่มต้นไม่ได้มาจากคำสั่งยึดหรือfstabแม้
0xC0000022L

ฉันสังเกตเห็นเมื่อรัน ZFS บน Linux ด้วยacltype=posixacl, /proc/mountsจะแสดงposixacl, แต่ในระบบอื่นที่มีเพียง ext4, ไม่มีอะไรอยู่ข้างใน/proc/mounts, แต่aclเป็นตัวเลือกเมานต์เริ่มต้นสำหรับ ext4
CMCDragonkai

4

หากต้องการทราบว่ามี ACL อยู่หรือไม่คุณสามารถ:

  1. ตรวจสอบเวอร์ชันเคอร์เนลและระบบไฟล์ปัจจุบัน:
    uname -r
    df -Tหรือmount | grep root

    distro ล่าสุดมีตัวเลือกการเมาท์ ACL ที่รวมโดยค่าเริ่มต้น (ตั้งแต่เคอร์เนล 2.6) ดังนั้นจึงไม่จำเป็นต้องกำหนดใหม่ใน / etc / fstab (หรือคล้ายกัน) รายการระบบไฟล์ที่ไม่เกี่ยวข้องทั้งหมด: ext3, ext4, tmpfs, xfs และ zfs

    หากคุณมีการตั้งค่าที่เก่ากว่าคุณอาจต้องคอมไพล์เคอร์เนลและ / หรือเพิ่ม acl /etc/fstabใหม่อีกครั้ง
    ตัวอย่าง fstab: /dev/root / ext4 acl,errors=remount-ro 0 1

  2. ค้นหาการตั้งค่า ACL ที่มีอยู่ (ตำแหน่งการตั้งค่า "ปกติ" เปิด / บูต):
    sudo mount | grep -i acl #optionnal
    cat /boot/config* | grep _ACL

    ขึ้นอยู่กับระบบที่คุณสามารถค้นหาการตั้งค่า/procแทน ต่อไปนี้เป็นวิธีแยกการกำหนดค่าจากไฟล์เก็บถาวร. gz จากนั้นค้นหาการตั้งค่า acl:
    cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
    cat running.config | grep _ACL

    คุณควรเห็นสิ่งต่อไปนี้:
    CONFIG_EXT3_FS_POSIX_ACL=y
    CONFIG_EXT2_FS_POSIX_ACL=y
    CONFIG_XFS_POSIX_ACL=y

    สำหรับระบบไฟล์คุณสามารถลองรับข้อมูลเพิ่มเติมด้วย:
    sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
    (แทนที่ xxx / xxx ด้วยระบบไฟล์ของคุณ)

-
ข้อมูลที่เป็นประโยชน์สามารถพบได้บน:
- superuser.com ,
- serverfault ,
- bencane.com ,
- wiki.archlinux.org


1

ควรเปิดใช้งาน acl เป็นค่าเริ่มต้นหากคุณใช้ ext2 / 3/4 หรือ btrfs

ตรวจสอบกับ:

tune2fs -l /dev/sdXY | grep "Default mount options:"

หากไม่ได้อยู่ในเอาต์พุตให้ทำดังนี้:

tune2fs -o acl /dev/sdXY


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