sexta-feira, 3 de maio de 2013

ACLs - Usando Access Control Lists no Linux

1 comment

O modelo básico de permissão no Linux, permite que você especifique as permissões para o Dono, Grupo e Outros. Este artigo presume que você esteja familiarizado com as permissões básicas, e saiba como configurá-las. O recurso da lista de controle de acesso (ACL) permiti um controle muito mais fino, você poderá especificar as permissões para usuários e grupos definidos no seu sistema. 

Considere o cenário: seu servidor de arquivos possui vários grupos dos departamentos da empresa. É normal que alguns serviços precisem compartilhar arquivos entre si, mas não com todos os departamentos. Por exemplo, Vendas precisa compartilhar um arquivo com Marketing, mas não com o HelpDesk. Para configurar isso usando apenas as permissões básicas é inviável, pois não podemos ter mais de um Grupo dono do arquivo.

Para isso, você pode usar ACLs e atribuir permissões individuais para grupos e usuários. 
Primeiramente você deve habilita-la para as partições em que deseja ter o recurso de ACL disponível.
A partir do Kernel 2.6 o módulo para controle de acesso (ACLs) já faz parte da compilação do mesmo.

Ativando ACL no Sistema de Arquivo

      Você pode ativar o flag da ACL na partição montada de forma temporária, utilizando como root o seguinte comando:
       # mount / -o acl,remount

     Ou para definir o comando acima de forma permanete, edite o arquivo /etc/fstab , encontre a partição que você deseja ativar o recurso e adicione a opção de montagem acl. 
       # vi /etc/fstab

Após isso recarregue as configurações do arquivo /etc/fstab no sistema com o próximo comando:
       # mount -a
pronto, o sistema está pronto para receber o novo permissionamento.

Adicionando Permissões de ACL

Em seguida, você precisará ter instaladas as duas ferramentas ACL: getfacl e setfacl, caso ainda não tenha você poderá instalar da seguinte forma:
       # apt-get install acl  [debian,ubuntu...]   ou    # yum install acl [centOS, RedHat...]

Ferramenta GETFACL
      Serve para consultar as permissões de um diretório/arquivo, segue a sintaxe:
  • getfacl [arquivo] ou [diretório]
     # getfacl /projetos/

Podemos vizualizar na imagem acima, a saída do comando informando quais usuários, grupos e donos estão contidos no diretório /projetos e quais são suas permissões.

Ferramenta SETFACL
      Serve para adicionar permissões para um diretório/arquivo. 
  • Usuário: u: [user]   :[perms]
  • Grupo:   g: [grupo] :[perms]
  • Others:   o: [perms]
O comando abaixo irá definir a permissão "rx" (ler e executar) para o usuário danilo no diretório /projetos/
     # setfacl -m u:danilo:rx /projetos/ 
Verifique a nova saída do comando # getfacl /projetos/ após o comando acima:
Outros comandos utilizando SETFACL:
Para adicionar um grupo basta utilizar a sintaxe:
  • g:[nome do grupo] no lugar de u:[nome do usuário]
por exemplo
     # setfacl -m g:[grupo]:[perms] [dir/arq]

Removendo as permissões ACL:
     # setfacl -b [dri/arq]  

Excluindo uma determinada permissão de usuário:
     # setfacl -x  u:[user] [dir/arq]

Remover permissão de Outros:
     # setfacl -m o::--  


até a próxima!!!

Um comentário: