Sys Admin (ep. 03, parte 8-11) - Permissões (ACLs - atribuir permissões)

O comando setfacl serve como a principal ferramenta para configurar permissões ACL em ficheiros e directórios , ajuda a definir com precisão direitos de acesso além das permissões convencionais. O objectivo é atribuir novas permissões ou remover as existentes, oferecendo controlo total sobre cenários complexos de permissões para ficheiros e directórios. Com domíno sobre o setfacl, pode-se implementar políticas de acesso multiusuário refinadas, o que tornam as ACLs uma ferramenta indispensável para a administração de sistemas modernos.
 
Veja abaixo a sintaxe para atribuir permissões especiais. 

Vamos aos exemplos. Na imagem abaixo já apresentamos um exemplo de como atribuir permissões ACL. Antes começamos por verificar permissões actuais do ficheiro hello.sh, logo de seguida atribuimos ao usuário ordela3 permissões de leitura e escrira para este ficheiro. Vejamos.


No exemplo acima temos:
  • a opção ou switch -m que serve para indicar que estamos a adicionar (se já tiver, indica que estamos a modificar) permissões ACL.
  • u:ordela3:rw que indica que estamos a atribuir permissões de leitura e escrita ao usuário ordela3
Permissões foram atribuidas com sucesso e como podemos ver no resultado acima, para além deste ficheiro pertencer ao usuário root e estar associado ao grupo root, o usuário ordela3 especificamente agora tem poder de leitura e escrita sobre este ficheiro. É qui onde reside a maior diferenca entre as permissões ACLs e as permisões convencionais, e usando o comando ls -l não possível verificar estas permissões, embora nos é indicado através do simbolo + que temos algo a mais do que podemos ver. Vejamos abaixo.

Podemos atribuir ao mesmo ficheiro, permissões para N usuários. No exemplo abaixo atribuimos permissoẽs de leitura, escrita e execussão para o usuário ordela, mantendo o usuário ordela3 com permissões de leitura e escrita apenas.

Podemos remover permissões específicas. Do mesmo jeito que atribuimos permissões usando a opção -m, podemos usar para diminuir ou adicionar permissões. No exemplo abaixo, removemos para o usuário ordela, as permissões de leitura e escrita, mantendo apenas a permissão de execussão. Com que então, sempre que usamos a opção -m para atibuir permissões a um usuário que já tem certas permissões ACL, as permissões antigas serão substituidas pelas novas, o que pode remover ou acrescentar dependendo do caso.

 Também podemos atribuir permissões aos grupos. Vejamos abaixo. 
 

Atribuir permissões a um directório, para um usuário.


Definir permissões ACL por padrão para um directório. O que isto significa ? Ao se definir permissões ACL para por exemplo um usuário, este automaticamente herdará por padrão estas permissões para todos ficheiros e subdirectórios que forem posteriormente criados deste directório. Vamos acompanhar o exemplo abaixo.


Vamos criar um ficheiro dentro deste directório e de seguida verificar suas permissões especiais.
 

Como podemos ver na imagem acima, o novo ficheiro foi criado e as permissões de leitura e escrita for atribuidas para o usuário ordela3 por padrão.
 
Do mesmo jeito que adicionamos permissoẽs ACL, podemos também remover caso não seja mais necessário que um usuário ou grupo tenha certas permissões. Vejamos abaixo. 
 


Conforme o exemplo mostra, as permissões foram removidas para o usuário ordela3. Este não tem mais acesso a este ficheiro. O mesmo fariamos para directórios, conforme mostra o comando na imagem acima.
 
Também se podem remover todas permissões ACL de uma só vez para todos usuários e grupos, o que quer dizer "limpar todas permissões ACL num ficheiro ou directório". Vejá o exemplo abaixo.

 
Nota: ao longo dos exemplos, pudemos perceber que após atribuir permissões ACL, ao verificar a existência das mesmas consguimos ver uma descrição mask com certas permisões. O mask define permissões máximas efectivas que podem ser concedidas a todos usuários e grupos (excepto ao proprietário). Substitui e limita permissões definidas nas entradas ACL.

Comentários