É suficiente ver getfacl
que não há erro ou preciso verificar algum outro local para ver se as ACLs são ou não suportadas pelos sistemas de arquivos?
É suficiente ver getfacl
que não há erro ou preciso verificar algum outro local para ver se as ACLs são ou não suportadas pelos sistemas de arquivos?
Respostas:
Se você está falando de um sistema de arquivos montado, não conheço nenhuma maneira intrínseca de saber se a ACL é possível. Observe que "o ACL é suportado?" não é uma pergunta muito precisa, pois existem vários tipos de ACL (Solaris / Linux / não POSIX-afinal, NFSv4, OSX,…). Observe que isso getfacl
é inútil como teste, pois ele informará com prazer as permissões do Unix, se houver: você precisa tentar configurar uma ACL para testar.
Ainda no sistema de arquivos montado, é possível verificar a presença acl
nas opções de montagem (nas quais você pode encontrar /proc/mount
). Note que isso não é suficiente: você também precisa levar em consideração a versão do kernel e o tipo de sistema de arquivos. Alguns tipos de sistema de arquivos sempre têm ACL disponível, independentemente das opções de montagem; este é o caso de tmpfs, xfs e zfs. Alguns sistemas de arquivos têm ACL, a menos que sejam explicitamente excluídos; este é o caso do ext4 desde o kernel 2.6.39 .
acltype=posixacl
o /proc/mounts
show será exibido posixacl
, mas em outro sistema com apenas ext4, não há nada dentro /proc/mounts
, mas acl
era uma opção de montagem padrão para o ext4.
Para saber se a ACL está disponível, você pode:
Verifique a versão atual do kernel e o sistema de arquivos:
uname -r
df -T
ou mount | grep root
A distribuição recente tem a opção de montagem da ACL incluída por padrão (desde o kernel 2.6). Portanto, não é obrigatório redefini-lo em / etc / fstab (ou similar). Lista não exaustiva dos sistemas de arquivos em questão: ext3, ext4, tmpfs, xfs e zfs.
Se você tiver uma configuração mais antiga, poderá ser necessário recompilar o kernel e / ou adicionar o acl /etc/fstab
.
exemplo fstab: /dev/root / ext4 acl,errors=remount-ro 0 1
Procure as configurações existentes da ACL (o local de configuração "usual" é ativado / inicializado):
sudo mount | grep -i acl #optionnal
cat /boot/config* | grep _ACL
Dependendo do sistema, você pode encontrar as configurações /proc
. Aqui está uma maneira de extrair a configuração do arquivo .gz e, em seguida, procurar as configurações de acl:
cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.config
cat running.config | grep _ACL
Você deve ver algo como:
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
Para o sistema de arquivos, você pode tentar obter mais informações com:
sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'
(substitua xxx / xxx pelo seu sistema de arquivos)
-
Informações úteis podem ser encontradas em:
- superuser.com ,
- serverfault ,
- bencane.com ,
- wiki.archlinux.org
O acl deve ser ativado como padrão se você estiver usando ext2 / 3/4 ou btrfs.
Verificar com:
tune2fs -l /dev/sdXY | grep "Default mount options:"
Se não estiver na saída, faça um:
tune2fs -o acl /dev/sdXY
root
, durante a execução getfacl
não. Não existe uma opção melhor para procurar suporte?
grep acl /etc/mke2fs.conf
vai fazer isso também.
getfacl
teste, você está certo. Exceto se eu fosse capaz de encontrar uma ACL não padrão (suprimindo as padrão e o cabeçalho). A verificação/proc/mount
não parece ser suficiente nos casos em que aacl
opção é uma opção padrão que não vem do comando mount oufstab
, no entanto.