Come faccio a sapere che gli ACL sono supportati sul mio file system?


13

È sufficiente vedere getfaclche non fornisce alcun errore o devo controllare un altro posto per vedere se gli ACL sono supportati o meno dai file system?

Risposte:


8

Se stai parlando di un filesystem montato, non conosco alcun modo intrinseco per dire se ACL è possibile. Si noti che "sono supportati ACL?" non è una domanda molto precisa poiché ci sono diversi tipi di ACL in giro (Solaris / Linux / dopotutto POSIX, NFSv4, OSX, ...). Si noti che getfaclè inutile come test poiché riporterà felicemente le autorizzazioni Unix se questo è tutto: è necessario provare a impostare un ACL per testare.

Sempre sul filesystem montato, puoi verificare la presenza delle aclopzioni di mount (che puoi trovare in /proc/mount). Nota che questo non è abbastanza: devi anche prendere in considerazione la versione del kernel e il tipo di filesystem. Alcuni tipi di filesystem hanno sempre ACL disponibili, indipendentemente dalle opzioni di mount; questo è il caso di tmpfs, xfs e zfs. Alcuni filesystem hanno ACL se non esplicitamente esclusi; questo è il caso di ext4 dal kernel 2.6.39 .


per quanto riguarda il getfacltest hai ragione. Tranne se sono stato in grado di trovare un ACL non predefinito (eliminando quelli e l'intestazione predefiniti). Il controllo /proc/mountnon sembra essere sufficiente nei casi in cui l' aclopzione è un'opzione predefinita che non proviene dal comando mount o fstab, comunque.
0xC0000022L

Ho notato che quando si esegue ZFS su Linux, con acltype=posixacl, /proc/mountsverrà mostrato posixacl, ma in un altro sistema con solo ext4, non c'è nulla all'interno /proc/mounts, ma aclera un'opzione di montaggio predefinita per ext4.
CMCDragonkai

4

Per sapere se ACL è disponibile puoi:

  1. Controlla la versione corrente del kernel e il filesystem:
    uname -r
    df -To la mount | grep root

    distribuzione recente ha l'opzione di montaggio ACL inclusa per impostazione predefinita (dal kernel 2.6). Quindi non è obbligatorio ridefinirlo in / etc / fstab (o simile). Elenco non esaustivo dei filesystem interessati: ext3, ext4, tmpfs, xfs e zfs.

    Se hai una configurazione precedente, potresti dover ricompilare il kernel e / o aggiungere acl /etc/fstab.
    Esempio di fstab: /dev/root / ext4 acl,errors=remount-ro 0 1

  2. Cerca le impostazioni ACL esistenti (la posizione di configurazione "normale" è attiva / avviata): a
    sudo mount | grep -i acl #optionnal
    cat /boot/config* | grep _ACL

    seconda del sistema in cui invece potresti trovare le impostazioni /proc. Ecco un modo per estrarre la configurazione dall'archivio .gz e quindi cercare le impostazioni acl:
    cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
    cat running.config | grep _ACL

    Dovresti vedere qualcosa del tipo:
    CONFIG_EXT3_FS_POSIX_ACL=y
    CONFIG_EXT2_FS_POSIX_ACL=y
    CONFIG_XFS_POSIX_ACL=y

    Per il filesystem puoi provare a ottenere maggiori informazioni con:
    sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
    (sostituisci xxx / xxx con il tuo filesystem)

-
Informazioni utili sono disponibili su:
- superuser.com ,
- serverfault ,
- bencane.com ,
- wiki.archlinux.org


1

acl dovrebbe essere abilitato di default se si utilizza ext2 / 3/4 o btrfs.

Controllare con:

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

Se non è nell'output, eseguire un:

tune2fs -o acl /dev/sdXY


grep acl /etc/mke2fs.conflo farà anche io.
Tentacoli di Cthulhu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.