Todos os produtos
Search
Central de documentação

File Storage NAS:Use ACLs NFSv4 para controlar o acesso

Última atualização: Aug 18, 2026

Este tópico descreve como configurar listas de controle de acesso (ACLs) NFSv4 e usá-las para controlar o acesso a arquivos e diretórios em um sistema de arquivos NFSv4.

Pré-requisitos

  • Um sistema de arquivos NFSv4 está montado. Para mais informações, consulte Mount an NFS file system on a Linux ECS instance.

  • A ACL NFS está ativada para o sistema de arquivos. Para ativá-la, acesse a página de detalhes do sistema de arquivos no console NAS, clique em Access Control no painel de navegação à esquerda e ative a chave NFS ACL.

Informações de fundo

Você pode montar um sistema de arquivos NFSv4 em uma instância do Elastic Compute Service (ECS) Linux e instale as ferramentas nfs4-acl-tools específicas para Linux na instância. Após a instalação, use os utilitários padrão nfs4_getfacl e nfs4_setfacl para configure as ACLs NFSv4.

Descrição dos comandos

Antes de configure as ACLs NFSv4, familiarize-se com os comandos específicos. A tabela a seguir descreve esses comandos.

Comando

Descrição

nfs4_getfacl <filename>

Consulta a ACL aplicada a um arquivo especificado.

nfs4_setfacl -a A::GROUP@:W <filename>

Concede permissão de gravação ao grupo.

nfs4_setfacl -a A::1000:W <filename>

Concede permissão de gravação ao usuário 1000.

nfs4_setfacl -a A:g:10001:W <filename>

Concede permissão de gravação ao grupo de usuários 10001.

nfs4_setfacl -e <filename>

Modifica uma ACL no modo interativo.

nfs4_getfacl <filename> > saved_acl.txt

Salva a lista de permissões de um arquivo especificado como um arquivo TXT.

nfs4_setfacl -S saved_acl.txt <filename>

Restaura as permissões da ACL a partir de um arquivo de texto.

nfs4_setfacl -m A::1001:rwaxTNcCy A::1001:rxtcy file1

Altera a permissão de uma ACE aplicada ao arquivo file1.

`nfs4_getfacl file1

nfs4_setfacl -S - file2`

Copia a ACL do arquivo file1 para o arquivo file2.

`nfs4_getfacl file1

grep @

nfs4_setfacl -S - file1`

Exclua as ACEs não retidas do arquivo file1.

nfs4_setfacl -R -a A:g:10001:rW dir

Adiciona uma ACE que concede permissões de leitura e gravação nos arquivos e subdiretórios do diretório dir a uma entidade de grupo chamada 10001.

`find dir -type f -exec sh -c 'for ace in $(nfs4_getfacl \{}

grep "^A.*\:1005\:"); do nfs4_setfacl -x $ace \{}; done' \;`

Remove todas as ACEs contendo 1005 de todos os arquivos na árvore de diretórios dir.

nfs4_setfacl -a A:fdg:10001:rW dir1

Adiciona uma ACE que concede permissões de leitura e gravação em novos arquivos e subdiretórios no diretório dir1 para uma entidade de grupo chamada 10001.

nfs4_setfacl -a A:fg:10001:rx dir1

Concede ao grupo de usuários 10001 permissões de leitura e execução em novos arquivos criados no diretório dir1.

Procedimento

Para controlar o acesso a arquivos e diretórios configurando ACLs NFSv4, execute as etapas a seguir.

  1. Crie usuários e grupos.

    Neste exemplo, crie os seguintes usuários: player, admini e anonym. Crie também os seguintes grupos: players e adminis. Adicione o usuário player ao grupo players e o usuário admini ao grupo adminis.

    sudo useradd player
    sudo groupadd players
    sudo usermod -g players player
    sudo useradd admini
    sudo groupadd adminis
    sudo usermod -g adminis admini
    sudo useradd anonym
  2. Instale as ferramentas necessárias para configure as ACLs NFSv4.

    Se você já instalou essas ferramentas, pule esta etapa.

    # CentOS/RHEL/Alibaba Cloud Linux
    sudo yum -y install nfs4-acl-tools
    
    # Ubuntu/Debian
    sudo apt-get -y install nfs4-acl-tools
  3. Obtenha os IDs dos grupos players e adminis.

    Abra o arquivo /etc/group. Os IDs dos grupos players e adminis serão exibidos.

    players:x:19064:player
    adminis:x:19065:admini
  4. Configure as ACLs NFSv4 para controlar o acesso a arquivos e diretórios.

    Execute os comandos abaixo para concluir as operações: crie um diretório chamado dir0. Adicione ACEs que concedam permissões somente leitura em todos os arquivos do diretório dir0 ao grupo players, concedam permissões de leitura, gravação e execução ao grupo adminis e não concedam permissões a outros usuários.

    sudo umask 777
    sudo mkdir dir0
    sudo nfs4_setfacl -a A:fdg:19064:RX dir0
    sudo nfs4_setfacl -a A:fdg:19065:RWX dir0
    sudo nfs4_setfacl -a A:fdg:OWNER@: dir0
    sudo nfs4_setfacl -a A:fdg:GROUP@: dir0
    sudo nfs4_setfacl -a A:fdg:EVERYONE@: dir0

    Após concluir a configuração, execute sudo nfs4_getfacl dir0 para visualize os resultados.

    A::OWNER@:tTnNcCy
    A::GROUP@:tncy
    A::EVERYONE@:tncy
    A:fdi:EVERYONE@:tncy
    A:fdi:OWNER@:tTnNcCy
    A:fdi:GROUP@:tncy
    A:g:19064:rxtncy
    A:g:19065:rwaDxtTnNcCy
    A:fdig:19064:rxtncy
    A:fdig:19065:rwaDxtTnNcCy
  5. Verifique a configuração da ACL.

    1. Verifique se o usuário admini tem permissões de leitura e gravação.

      sudo su admini -c 'touch dir0/file'
      sudo su admini -c 'echo 123 > dir0/file'
    2. Verifique se o usuário player tem apenas permissões de leitura.

      1. Verifique se há permissão para crie arquivos (por exemplo, criando o arquivo dir0/file).

        • Execute o seguinte comando:

          sudo su player -c 'touch dir0/file'
        • Se a saída for semelhante às informações abaixo, o usuário player não tem permissão para crie um arquivo:

          touch: cannot touch ‘dir0/file’: Permission denied
      2. Verifique se há permissão de gravação (por exemplo, gravando no arquivo dir0/file).

        • Execute o seguinte comando:

          sudo su player -c 'echo 456 >> dir0/file'
        • Se a saída for semelhante às informações abaixo, o usuário player não tem permissão de gravação:

          bash: dir0/file: Permission denied
      3. Verifique se há permissão de leitura.

        • Execute o seguinte comando:

          sudo su player -c 'cat dir0/file'
        • Se a saída for semelhante às informações abaixo, o usuário player tem permissão de leitura:

          123

        Você também pode execute o comando sudo su player -c 'nfs4_getfacl dir0/file' para visualize a permissão do usuário player no arquivo dir0/file.

        A::OWNER@:tTnNcCy
        A::GROUP@:tncy
        A::EVERYONE@:tncy
        A:g:19064:rxtncy
        A:g:19065:rwaxtTnNcCy
    3. Verifique se o usuário anonym não tem nenhuma permissão.

      1. Verifique se o usuário anonym não tem permissão para visualize arquivos no diretório dir0.

        • Execute o seguinte comando:

          sudo su anonym -c 'ls dir0'
        • Se a mensagem a seguir for retornada, o usuário anônimo não tem permissão de acesso.

          ls: cannot open directory dir0: Permission denied
      2. Verifique se não é possível visualize o conteúdo do arquivo.

        • Execute o seguinte comando:

          sudo su anonym -c 'cat dir0/file'
        • Se a saída for semelhante às informações abaixo, o usuário anonym não tem permissão para acessar o arquivo no diretório dir0. O NFSv4 retorna esse erro quando a permissão de pesquisa (execução) no diretório é negada:

          cat: dir0/file: No such file or directory
      3. Verifique se não há permissão para acessar o arquivo 'file'.

        • Execute o seguinte comando:

          sudo su anonym -c 'nfs4_getfacl dir0/file'
        • Se a saída for semelhante às informações abaixo, o usuário anonym não tem permissão para acessar o arquivo.

          Invalid filename: dir0/file

Operações relacionadas

Use o método a seguir para revogar permissões de um usuário.

Ao usar ACLs NFSv4, recomenda-se adicionar cada usuário a um grupo. Isso permite configure permissões para grupos de usuários em vez de usuários individuais. Para revogar as permissões de um usuário sobre um objeto, remova-o do grupo que possui as permissões concedidas sobre esse objeto. Por exemplo, execute os comandos a seguir para remover o usuário admini do grupo adminis e adicioná-lo ao grupo adminis2.

  1. Crie o grupo adminis2.

    sudo groupadd adminis2
  2. Mova o usuário admini do grupo adminis para o grupo adminis2.

    sudo usermod -g adminis2 admini
  3. Consulte as permissões de um ID de usuário.

    • Execute o seguinte comando:

      id admini
    • As seguintes informações são retornadas:

      uid=1057(admini) gid=1057(admini) groups=1061(adminis2)
  4. Verifique as permissões do usuário admini.

    1. Verifique se não é possível acessar o diretório dir0.

      • Execute o seguinte comando:

        sudo su admini -c 'ls dir0'
      • Se a saída for semelhante às informações abaixo, o usuário admini não tem permissão para acessar o diretório dir0:

        ls: cannot open directory dir0: Permission denied
    2. Verifique se o usuário admini não tem permissão para visualize o conteúdo do arquivo dir0/file.

      • Execute o seguinte comando:

        sudo su admini -c 'cat dir0/file'
      • Se a saída for semelhante às informações abaixo, o usuário admini não tem permissão para acessar o arquivo no diretório dir0. O NFSv4 retorna esse erro quando a permissão de pesquisa (execução) no diretório é negada:

        cat: dir0/file: No such file or directory
    3. Verifique se o usuário admini não tem permissão para acessar o arquivo dir0/file.

      • Execute o seguinte comando:

        sudo su admini -c 'nfs4_getfacl dir0/file'
      • Se a saída for semelhante às informações abaixo, o usuário admini não tem permissão para acessar o arquivo no diretório dir0. O NFSv4 retorna esse erro quando a permissão de pesquisa (execução) no diretório é negada:

        Invalid filename: dir0/file