มันเพียงพอที่จะเห็นว่าgetfacl
ไม่มีข้อผิดพลาดหรือฉันต้องตรวจสอบที่อื่นเพื่อดูว่า ACLs รองรับระบบไฟล์หรือไม่?
มันเพียงพอที่จะเห็นว่าgetfacl
ไม่มีข้อผิดพลาดหรือฉันต้องตรวจสอบที่อื่นเพื่อดูว่า ACLs รองรับระบบไฟล์หรือไม่?
คำตอบ:
หากคุณกำลังพูดถึงระบบไฟล์ที่ติดตั้งอยู่ฉันไม่ทราบวิธีที่แท้จริงที่จะบอกว่า 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
acltype=posixacl
, /proc/mounts
จะแสดงposixacl
, แต่ในระบบอื่นที่มีเพียง ext4, ไม่มีอะไรอยู่ข้างใน/proc/mounts
, แต่acl
เป็นตัวเลือกเมานต์เริ่มต้นสำหรับ ext4
หากต้องการทราบว่ามี ACL อยู่หรือไม่คุณสามารถ:
ตรวจสอบเวอร์ชันเคอร์เนลและระบบไฟล์ปัจจุบัน:
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
ค้นหาการตั้งค่า 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
ควรเปิดใช้งาน acl เป็นค่าเริ่มต้นหากคุณใช้ ext2 / 3/4 หรือ btrfs
ตรวจสอบกับ:
tune2fs -l /dev/sdXY | grep "Default mount options:"
หากไม่ได้อยู่ในเอาต์พุตให้ทำดังนี้:
tune2fs -o acl /dev/sdXY
grep acl /etc/mke2fs.conf
จะทำเช่นกัน
getfacl
ทดสอบที่คุณพูดถูก ยกเว้นถ้าฉันสามารถหา ACL ที่ไม่ใช่ค่าเริ่มต้น (โดยการระงับค่าเริ่มต้นและส่วนหัว) ตรวจสอบ/proc/mount
ไม่ได้ดูเหมือนจะเพียงพอในกรณีที่acl
ตัวเลือกเป็นตัวเลือกเริ่มต้นไม่ได้มาจากคำสั่งยึดหรือfstab
แม้