Como sei que as ACLs são suportadas no meu sistema de arquivos?


12

É suficiente ver getfaclque 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:


7

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


quanto ao getfaclteste, 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/mountnão parece ser suficiente nos casos em que a aclopção é uma opção padrão que não vem do comando mount ou fstab, no entanto.
0xC0000022L

Percebi que, ao executar o ZFS no Linux, acltype=posixaclo /proc/mountsshow será exibido posixacl, mas em outro sistema com apenas ext4, não há nada dentro /proc/mounts, mas aclera uma opção de montagem padrão para o ext4.
precisa saber é o seguinte

4

Para saber se a ACL está disponível, você pode:

  1. Verifique a versão atual do kernel e o sistema de arquivos:
    uname -r
    df -Tou 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

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


1

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


o comando funciona apenas para ext2 / 3/4. E isso requer root, durante a execução getfaclnão. Não existe uma opção melhor para procurar suporte?
0xC0000022L

grep acl /etc/mke2fs.confvai fazer isso também.
Cthulhu Tentacles

isso também é específico ao ext2 / 3/4 e não atende ao btrfs. Obrigado pelo seu tempo, mas aguardarei uma solução mais genérica para o problema.
0xC0000022L
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.