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

Publicado por Daniel Zaia Manzano em 18/07/2014

[ Hits: 12.561 ]

 


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

lshw - Obtendo informações de hardware

Visualizando arquivos PDF no terminal

Como restaurar o arquivo "/dev/null"

type - Determinar o tipo de um comando

eject - Comando para abrir/fechar drive de disco

Leitura recomendada

Erro na montagem de dispositivos NTFS após backup

SSH no iPAD via USB

Hot Add Linux em VmWare ESX(i) Guest

FAT32 com acentos

Projeto linux-ntfs lança driver beta para leitura e escrita em partições NTFS

  

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