Apakah cukup dengan melihat getfacl
tidak ada kesalahan, atau apakah saya harus memeriksa tempat lain untuk melihat apakah ACL didukung oleh sistem file?
Apakah cukup dengan melihat getfacl
tidak ada kesalahan, atau apakah saya harus memeriksa tempat lain untuk melihat apakah ACL didukung oleh sistem file?
Jawaban:
Jika Anda berbicara tentang sistem file yang dipasang, saya tidak tahu cara intrinsik untuk mengetahui apakah ACL mungkin. Perhatikan bahwa "apakah ACL didukung?" bukan pertanyaan yang sangat tepat karena ada beberapa jenis ACL di sekitar (Solaris / Linux / bukan-POSIX-setelah-semua, NFSv4, OSX, ...). Catatan yang getfacl
tidak berguna sebagai tes karena akan dengan senang hati melaporkan izin Unix jika hanya itu yang ada: Anda perlu mencoba mengatur ACL untuk diuji.
Masih pada sistem file yang terpasang, Anda dapat memeriksa keberadaan acl
opsi mount (yang dapat Anda temukan di /proc/mount
). Perhatikan bahwa ini tidak cukup: Anda juga perlu mempertimbangkan versi kernel dan tipe sistem file. Beberapa tipe sistem file selalu memiliki ACL, terlepas dari opsi mount; ini adalah kasus untuk tmpfs, xfs dan zfs. Beberapa sistem file memiliki ACL kecuali secara eksplisit dikecualikan; ini adalah kasus untuk ext4 sejak kernel 2.6.39 .
acltype=posixacl
, /proc/mounts
akan menunjukkan posixacl
, tetapi di sistem lain dengan hanya ext4, tidak ada di dalam /proc/mounts
, tetapi acl
merupakan opsi pemasangan default untuk ext4.
Untuk mengetahui apakah ACL tersedia, Anda dapat:
Periksa versi kernel saat ini dan sistem file:
uname -r
df -T
atau mount | grep root
distro terbaru memiliki opsi mount ACL disertakan secara default (sejak kernel 2.6). Jadi tidak wajib mendefinisikannya kembali di / etc / fstab (atau serupa). Daftar sistem file yang tidak lengkap: ext3, ext4, tmpfs, xfs dan zfs.
Jika Anda memiliki pengaturan yang lebih lama maka Anda mungkin harus mengkompilasi ulang kernel dan / atau menambahkan acl in /etc/fstab
.
contoh fstab: /dev/root / ext4 acl,errors=remount-ro 0 1
Cari pengaturan ACL yang ada (tempat konfigurasi "biasa" sedang di / boot):
sudo mount | grep -i acl #optionnal
cat /boot/config* | grep _ACL
Bergantung pada sistemnya, Anda dapat menemukan pengaturannya /proc
. Berikut adalah cara untuk mengekstrak konfigurasi dari arsip .gz dan kemudian mencari pengaturan acl:
cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
cat running.config | grep _ACL
Anda akan melihat sesuatu seperti:
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
Untuk sistem berkas Anda dapat mencoba untuk mendapatkan info lebih lanjut dengan:
sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
(ganti xxx / xxx dengan sistem berkas Anda)
-
Informasi bermanfaat dapat ditemukan di:
- superuser.com ,
- serverfault ,
- bencane.com ,
- wiki.archlinux.org
acl harus diaktifkan sebagai default jika Anda menggunakan ext2 / 3/4 atau btrfs.
Periksa dengan:
tune2fs -l /dev/sdXY | grep "Default mount options:"
Jika tidak ada dalam output, lakukan:
tune2fs -o acl /dev/sdXY
grep acl /etc/mke2fs.conf
akan melakukannya juga.
getfacl
tes Anda benar. Kecuali jika saya dapat menemukan ACL non-standar (dengan menekan yang standar dan header). Memeriksa/proc/mount
tampaknya tidak cukup dalam kasus-kasus di manaacl
opsi adalah opsi default tidak datang dari perintah mount ataufstab
, meskipun.