Pular para o conteúdo

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

Dica publicada em Linux / Sistema de Arquivos
Daniel Zaia Manzano dzm_linux
Hits: 13.184 Categoria: Linux Subcategoria: Sistema de Arquivos
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

lshw - Obtendo informações de hardware

Macete para apagar conteúdo de arquivo sem excluí-lo

Visualizando arquivos PDF no terminal

Debug em Shell Scripts

Macete para busca reversa de comandos

Como instalar impressora Samsung ML 1865W ou similar no Linux

Samba 4 - O fim do Windows Server?

resize2fs: Permission denied to resize filesystem [RESOLVIDO]

Como liberar espaço em partições cheias no Mandriva Linux

Pidgin não criptografa senhas armazenadas

#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

Entre na sua conta para comentar.