ACL - Implementando permissões de arquivos e diretórios personalizados

Publicado por Daniel Zaia Manzano em 18/07/2014

[ Hits: 12.168 ]

 


ACL - Implementando permissões de arquivos e diretórios personalizados



Como a maioria dos usuários de GNU/Linux já sabe, o sistema do pinguim utiliza um sistema de permissionamento de arquivos e diretórios muito robusto, limitando um inode a permissões para o dono do inode, o grupo dono e demais usuários.

Porém, é possível que se estabeleçam permissões personalizadas por meio da criação de ACLs (Access Control List), conforme o exemplo a seguir.

Neste contexto, tenho uma máquina chamada "debian" e 2 usuários: "daniel" e "teste".

Primeiramente, criarei o diretório /home/daniel/teste:

mkdir /home/daniel/teste
touch /home/daniel/teste/arquivo_daniel.txt
ls -lh /home/daniel/teste/
total 0
-rw-r--r-- 1 daniel daniel 0 Jul 14 00:02 arquivo_daniel.txt


ls -ld /home/daniel/teste/
drwxr-xr-x 2 daniel daniel 4096 Jul 13 23:38 /home/daniel/teste/

Em seguida, vou utilizar o comando getfacl para visualizar todas as permissões do diretório /home/daniel/teste, tanto as permissões normais, quanto ACLs:

getfacl /home/daniel/teste/
getfacl: Removing leading '/' from absolute path names
# file: home/daniel/teste/
# owner: daniel
# group: daniel
user::rwx
group::r-x
other::r-x


Logado com o usuário "teste", tentaremos criar um arquivo em /home/daniel/teste:

touch /home/daniel/teste/arquivo_teste.txt
touch: não foi possível tocar "/home/daniel/teste/arquivo_teste.txt": Permissão negada

Agora, vamos incluir uma ACL por meio do comando setfacl, permitindo que o usuário "teste" tenha poderes totais no diretório /home/daniel/teste:

setfacl -m u:teste:rwx /home/daniel/teste

Legendas:
  • -m :: Modifica uma ACL existente ou cria ela, se não existir.
  • u:teste:rwx :: Indica a ACL para o usuário "teste", com as permissões de leitura, escrita e execução, respectivamente.

É possível perceber o "+" na saída do comando ls, após a criação da ACL. Este sinal indica justamente a existência de uma ACL configurada para este diretório, com permissões totais para o usuário "teste", além das permissões normais, e é visível por meio do comando getfacl:

ls -ld /home/daniel/teste/
drwxrwxr-x+ 2 daniel daniel 4096 Jul 13 23:41 /home/daniel/teste/

getfacl /home/daniel/teste/ getfacl: Removing leading '/' from absolute path names
# file: home/daniel/teste/
# owner: daniel
# group: daniel
user::rwx
user:teste:rwx
group::r-x
mask::rwx
other::r-x


Após a criação da ACL, logaremos como usuário "teste" e tentaremos novamente criar o arquivo arquivo_teste.txt em /home/daniel/teste:

touch /home/daniel/teste/arquivo_teste.txt
ls -lh /home/daniel/teste/ total 0
-rw-r--r-- 1 daniel daniel 0 Jul 14 00:02 arquivo_daniel.txt
-rw-r--r-- 1 teste  teste  0 Jul 13 23:41 arquivo_teste.txt


Observações:
  • O comando setfacl também possui uma opção --set, porém, esta opção sobrescreve quaisquer regras de ACL criadas previamente. Prefira utilizar a opção -m;
  • Os comandos getfacl e setfacl são providos pelo pacote acl, em sistemas Debian e derivados;
  • Para maiores informações, consulte man getfacl e man setfacl.

Outras dicas deste autor

convert - Convertendo imagens no GNU/Linux

Como alterar o nome da interface de rede

Alterar resolução de tela do terminal (modo texto)

Aliases no bash e como "escapar" um comando com alias

Processos de usuário em segundo plano e como manipulá-los

Leitura recomendada

Atualização do horário de verão automatizada

Estendendo, à quase eternidade, a vida útil do SD card no Raspberry Pi

Gerenciamento de quotas de impressão

Procedimento para montagem de partições externas no boot do Ubuntu 12.04

Corrigir boot do Windows após instalação do Linux com redimensionamento do disco

  

Comentários
[1] Comentário enviado por vinipsmaker em 18/07/2014 - 01:26h

Está aí algo que eu não sabia, mesmo usando o GNU/Linux por muitos anos. Valeu por compartilhar. Vai para os favoritos.

[2] Comentário enviado por wluisaraujo em 18/07/2014 - 11:11h

Boa Dica maninho, Parabéns!

[3] Comentário enviado por DarkLinnux em 23/11/2014 - 11:37h

Gostei =)

[4] Comentário enviado por devtiagofranca em 23/05/2021 - 21:11h


Top demais. Parabéns



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts