Bagaimana saya tahu ACL didukung pada sistem file saya?

13

Apakah cukup dengan melihat getfacltidak ada kesalahan, atau apakah saya harus memeriksa tempat lain untuk melihat apakah ACL didukung oleh sistem file?

0xC0000022L
sumber

Jawaban:

8

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 getfacltidak 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 aclopsi 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 .

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Adapun getfacltes Anda benar. Kecuali jika saya dapat menemukan ACL non-standar (dengan menekan yang standar dan header). Memeriksa /proc/mounttampaknya tidak cukup dalam kasus-kasus di mana aclopsi adalah opsi default tidak datang dari perintah mount atau fstab, meskipun.
0xC0000022L
Saya perhatikan ketika menjalankan ZFS di Linux, dengan acltype=posixacl, /proc/mountsakan menunjukkan posixacl, tetapi di sistem lain dengan hanya ext4, tidak ada di dalam /proc/mounts, tetapi aclmerupakan opsi pemasangan default untuk ext4.
CMCDragonkai
4

Untuk mengetahui apakah ACL tersedia, Anda dapat:

  1. Periksa versi kernel saat ini dan sistem file:
    uname -r
    df -Tatau 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

  2. 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

xaa
sumber
1

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

Tentakel Cthulhu
sumber
grep acl /etc/mke2fs.confakan melakukannya juga.
Cthulhu Tentacles