Todos os produtos
Search
Central de documentação

File Storage NAS:Use ACLs POSIX para controlar o acesso

Última atualização: Sep 08, 2026

Configure listas de controle de acesso (ACLs) POSIX para definir permissões granulares de arquivos e diretórios em um sistema de arquivos NFSv3.

Pré-requisitos

  • Um sistema de arquivos NFSv3 está montado. Para mais informações, consulte Mount an NFS file system.

  • O recurso NFS ACL está ativado no sistema de arquivos. Sem essa ativação, não é possível usar o comando setfacl para definir ACLs POSIX.

    Faça login no console NAS, acesse a página de detalhes do sistema de arquivos, clique em aba Access Control e ative a chave NFS ACL; ou chame a operação EnableNfsAcl.

Comandos

A tabela a seguir descreve comandos comuns de ACL POSIX.

Comando

Descrição

getfacl <filename>

Consulta a ACL de um arquivo.

setfacl -m g::w <filename>

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

setfacl -m u:player:w <filename>

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

setfacl -m g:players:rwx <filename>

Concede permissões de leitura, gravação e execução ao grupo players.

setfacl -x g:players <filename>

Revoga as permissões do grupo players.

getfacl file1 \

setfacl --set-file=- file2

Copia a ACL de file1 para file2.

setfacl -b file1

Remove todas as ACEs estendidas de file1. As ACEs base para proprietário, grupo e outros são mantidas.

setfacl -k file1

Remove todas as ACEs padrão de file1.

setfacl -R -m g:players:rw dir

Concede permissões de leitura e gravação em todos os arquivos e subdiretórios dentro de dir ao grupo players.

setfacl -d -m g:players:rw dir1

Defina permissões padrão de leitura e gravação para novos arquivos e subdiretórios criados em dir1 para o grupo players.

Configure ACLs POSIX

Para configure ACLs POSIX visando o controle de acesso:

  1. Crie usuários e grupos.

    Este exemplo cria três usuários (player, admini, anonym) e dois grupos (players, adminis). Em seguida, atribui 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. Configure ACLs POSIX para controlar o acesso a arquivos e diretórios.

    Neste cenário, considera-se a criação de um diretório chamado dir0. Para todos os arquivos dentro de dir0, conceda permissão somente leitura ao grupo players, permissões totais (leitura, gravação e execução) ao grupo adminis e nenhuma permissão aos demais usuários.

    sudo umask 777
    sudo mkdir dir0
    sudo setfacl -m g:players:r-x dir0
    sudo setfacl -m g:adminis:rwx dir0
    sudo setfacl -m u::--- dir0
    sudo setfacl -m g::--x dir0
    sudo setfacl -m o::--- dir0
    sudo setfacl -d -m g:players:r-x dir0
    sudo setfacl -d -m g:adminis:rwx dir0
    sudo setfacl -d -m u::--- dir0
    sudo setfacl -d -m g::--x dir0
    sudo setfacl -d -m o::--- dir0

    Execute sudo getfacl dir0 para verifique a configuração.

    # file: dir0
    # owner: root
    # group: root
    user::---
    group::--x
    group:players:r-x
    group:adminis:rwx
    mask::rwx
    other::---
    default:user::---
    default:group::--x
    default:group:players:r-x
    default:group:adminis:rwx
    default:mask::rwx
    default:other::---
  3. Verifique as permissões.

    1. Confirme se o usuário admini possui permissões de leitura e gravação:

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

      1. Certifique-se de que o usuário player não consegue crie o arquivo file.

        Por exemplo, tente crie um arquivo file no diretório dir0.

        • Execute o seguinte comando:

          sudo su player -c 'touch dir0/file'
        • Se uma mensagem semelhante à abaixo for retornada, o usuário player não tem permissão para crie o arquivo file.

          touch: cannot touch ‘dir0/file’: Permission denied
      2. Verifique se o usuário player consegue ler dir0/file.

        • Execute o seguinte comando:

          sudo su player -c 'cat dir0/file'
        • Se a saída abaixo for exibida, o usuário player tem permissão para visualize o conteúdo do arquivo dir0/file.

          123
      3. Teste se o usuário player está impedido de gravar no arquivo.

        • Execute o seguinte comando:

          sudo su player -c 'echo 456 >> dir0/file'
        • Saída esperada quando a permissão de gravação é negada:

          bash: dir0/file: Permission denied

        Execute sudo su player -c 'getfacl dir0/file' para visualize as permissões do usuário player sobre dir0/file.

        # file: dir0/file
        # owner: admini
        # group: adminis
        user::---
        group::---
        group:players:r-x
        group:adminis:rwx
        mask::rwx
        other::---
    3. Confirme que o usuário anonym não possui permissões em dir0.

      1. Verifique se o usuário anonym não consegue listar arquivos em dir0.

        • Execute o seguinte comando:

          sudo su anonym -c 'ls dir0'
        • Saída esperada caso a permissão seja negada:

          ls: cannot open directory dir0: Permission denied
      2. Valide se o usuário anonym está impedido de ler o arquivo.

        • Execute o seguinte comando:

          sudo su anonym -c 'cat dir0/file'
        • Retorno esperado quando a permissão de leitura é bloqueada:

          cat: dir0/file: Permission denied
      3. Teste se o usuário anonym não consegue acessar a ACL do arquivo.

        • Execute o seguinte comando:

          sudo su anonym -c 'getfacl dir0/file'
        • Mensagem de erro prevista ao tentar o acesso:

          getfacl: dir0/file: Permission denied

Revogar permissões de usuário

O exemplo a seguir demonstra como revogar as permissões de um usuário transferindo-o para outro grupo.

Como melhor prática, conceda permissões a grupos em vez de usuários individuais. Para remover o acesso, mova o usuário para um grupo diferente. Os passos abaixo movem o usuário admini do grupo adminis para o grupo adminis2.

  1. Crie o grupo adminis2:

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

    sudo usermod -g adminis2 admini
  3. Verifique a associação de grupo do usuário.

    • Execute o seguinte comando:

      id admini
    • As informações retornadas serão semelhantes a estas:

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

    1. Confirme que o usuário admini perdeu o acesso a dir0.

      • Execute o seguinte comando:

        sudo su admini -c 'ls dir0'
      • Resultado esperado indicando que o usuário admini não acessa mais dir0:

        ls: cannot open directory dir0: Permission denied
    2. Verifique se o usuário admini não consegue ler dir0/file.

      • Execute o seguinte comando:

        sudo su admini -c 'cat dir0/file'
      • Saída prevista confirmando a falta de permissão de leitura para dir0/file:

        cat: dir0/file: Permission denied
    3. Teste se o usuário admini está totalmente bloqueado de acessar dir0/file.

      • Execute o seguinte comando:

        sudo su admini -c 'getfacl dir0/file'
      • Erro retornado quando o acesso é negado ao usuário admini em dir0/file:

        getfacl: dir0/file: Permission denied