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 |
||
|
|
Consulta a ACL aplicada a um arquivo especificado. |
||
|
|
Concede permissão de gravação ao grupo. |
||
|
|
Concede permissão de gravação ao usuário 1000. |
||
|
|
Concede permissão de gravação ao grupo de usuários 10001. |
||
|
|
Modifica uma ACL no modo interativo. |
||
|
|
Salva a lista de permissões de um arquivo especificado como um arquivo TXT. |
||
|
|
Restaura as permissões da ACL a partir de um arquivo de texto. |
||
|
|
Altera a permissão de uma ACE aplicada ao arquivo file1. |
||
|
|
nfs4_setfacl -S - file2` |
Copia a ACL do arquivo file1 para o arquivo file2. |
|
|
|
grep @ |
nfs4_setfacl -S - file1` |
Exclua as ACEs não retidas do arquivo file1. |
|
|
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. |
||
|
|
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. |
|
|
|
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. |
||
|
|
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.
-
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 -
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 -
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 -
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@: dir0Após concluir a configuração, execute
sudo nfs4_getfacl dir0para 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 -
Verifique a configuração da ACL.
-
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' -
Verifique se o usuário player tem apenas permissões de leitura.
-
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
-
-
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
-
-
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árioplayerno arquivo dir0/file.A::OWNER@:tTnNcCy A::GROUP@:tncy A::EVERYONE@:tncy A:g:19064:rxtncy A:g:19065:rwaxtTnNcCy -
-
-
Verifique se o usuário anonym não tem nenhuma permissão.
-
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
-
-
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
-
-
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.
-
Crie o grupo adminis2.
sudo groupadd adminis2 -
Mova o usuário admini do grupo adminis para o grupo adminis2.
sudo usermod -g adminis2 admini -
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)
-
-
Verifique as permissões do usuário admini.
-
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
-
-
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
-
-
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
-
-