È sufficiente vedere getfacl
che non fornisce alcun errore o devo controllare un altro posto per vedere se gli ACL sono supportati o meno dai file system?
È sufficiente vedere getfacl
che non fornisce alcun errore o devo controllare un altro posto per vedere se gli ACL sono supportati o meno dai file system?
Risposte:
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 acl
opzioni 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 .
acltype=posixacl
, /proc/mounts
verrà mostrato posixacl
, ma in un altro sistema con solo ext4, non c'è nulla all'interno /proc/mounts
, ma acl
era un'opzione di montaggio predefinita per ext4.
Per sapere se ACL è disponibile puoi:
Controlla la versione corrente del kernel e il filesystem:
uname -r
df -T
o 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
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
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.conf
lo farà anche io.
getfacl
test hai ragione. Tranne se sono stato in grado di trovare un ACL non predefinito (eliminando quelli e l'intestazione predefiniti). Il controllo/proc/mount
non sembra essere sufficiente nei casi in cui l'acl
opzione è un'opzione predefinita che non proviene dal comando mount ofstab
, comunque.