{"id":667,"date":"2014-08-08T10:29:33","date_gmt":"2014-08-08T13:29:33","guid":{"rendered":"http:\/\/blog.abratel.com.br\/?p=667"},"modified":"2014-08-08T10:29:33","modified_gmt":"2014-08-08T13:29:33","slug":"checando-acl-em-um-diretorio-linux","status":"publish","type":"post","link":"https:\/\/blog.abratel.com.br\/?p=667","title":{"rendered":"Checando ACL em um diret\u00f3rio linux"},"content":{"rendered":"<p>Para uma perfeita integra\u00e7\u00e3o \u00e9 necess\u00e1rio os diret\u00f3rios devem ter permiss\u00f5es semelhantes:<\/p>\n<p>Ativar ACL no diret\u00f3rio:<br \/>\n[root@vpn cliente1]# cat \/etc\/fstab<\/p>\n<p># Home em passwd fica com \/chroot\/\/home\/cliente3\/cliente3<br \/>\n\/home\/cliente3 \/chroot\/home\/cliente3 auto bind,acl,user_xattr 0 0<br \/>\n\/home\/cliente1 \/chroot\/home\/cliente1  auto bind,acl,user_xattr 0 0<\/p>\n<p>[root@vpn cliente1]# ls -lah \/home\/cliente2\/cliente2\/<br \/>\ntotal 44K<br \/>\ndrwxrwx&#8212;+ 5 cliente2 cliente2 4.0K Jun 26  2012 .<br \/>\ndrwxrwx&#8212;+ 3 cliente2 cliente2 4.0K Jun 26  2012 ..<br \/>\n-rwxrwx&#8212;+ 1 cliente2 cliente2  178 Nov  5  2013 .bash_history<br \/>\ndrwxrwx&#8212;+ 2 cliente2 cliente2 4.0K Jun 10 10:59 inbound<br \/>\ndrwxrwx&#8211;x+ 2 cliente2 cliente2 4.0K Nov  7  2013 outbound<br \/>\ndrwx&#8212;&#8212;  2 cliente2 cliente2 4.0K Jun 21  2012 .ssh<\/p>\n<p>[root@vpn cliente1]# getfacl \/home\/cliente2\/cliente2\/outbound\/<br \/>\ngetfacl: Removing leading &#8216;\/&#8217; from absolute path names<br \/>\n# file: home\/cliente2\/cliente2\/outbound<br \/>\n# owner: cliente2<br \/>\n# group: cliente2<br \/>\nuser::rwx<br \/>\nuser:profit:rwx<br \/>\nuser:monitor:rwx<br \/>\nuser:cliente2:rwx<br \/>\ngroup::&#8211;x<br \/>\nmask::rwx<br \/>\nother::&#8211;x<br \/>\ndefault:user::rwx<br \/>\ndefault:user:profit:rwx<br \/>\ndefault:user:monitor:rwx<br \/>\ndefault:user:cliente2:rwx<br \/>\ndefault:group::&#8211;x<br \/>\ndefault:mask::rwx<br \/>\ndefault:other::&#8211;x<\/p>\n<p>[root@vpn cliente1]# ls -lah \/home\/cliente2\/<br \/>\ntotal 24K<br \/>\ndrwxrwx&#8212;+  3 cliente2 cliente2 4.0K Jun 26  2012 .<br \/>\ndrwxrwx&#8211;x+ 32 root      root      4.0K Sep 17  2013 ..<br \/>\ndrwxrwx&#8212;+  5 cliente2 cliente2 4.0K Jun 26  2012 cliente2<\/p>\n<p>Personalizando\/refinando permiss\u00f5es de arquivo com ACL<\/p>\n<p>Para utilizar as ACL vamos usar 2 comandos basicos, setfacl e getfacl, o set \u00e9 para definir e o get \u00e9 para saber quais foram as permiss\u00f5es definidas (ou seja o que tem por tr\u00e1s do +)<\/p>\n<p>Supondo que eu tenha o grupo &#8220;edita&#8221; e quero que esse grupo tenha controle total para a pasta1, voc\u00ea deve utilizar o seguinte comando:<\/p>\n<p>Primeiramente vamos criar o diret\u00f3rio<\/p>\n<p># mkdir pasta1<\/p>\n<p>Definir para controle total do grupo e usu\u00e1rio (root), e leitura e execu\u00e7\u00e3o para outros<\/p>\n<p># chmod 775 pasta1\/<\/p>\n<p>Agora vamos executar o comando ls -l para ver o como est\u00e1 sendo exibido:<\/p>\n<p># ls -l<\/p>\n<p>total 2<br \/>\ndrwxrwxr-x 2 root root 1024 2008-05-06 11:41 pasta1<\/p>\n<p>Vamos ent\u00e3o aplicar uma ACL simples para que o grupo edita possa ter execu\u00e7\u00e3o total<\/p>\n<p># setfacl -m g:edita:rwx pasta1\/<\/p>\n<p>Executando o comando ls -l<\/p>\n<p># ls -l<\/p>\n<p>total 2<br \/>\ndrwxrwxr-x+ 2 root root 1024 2008-05-06 11:41 pasta1<\/p>\n<p>Reparem que agora existe um + ap\u00f3s os 9 digitos bin\u00e1rios, o que significa que existem permiss\u00f5es extras al\u00e9m do j\u00e1 permitido por padr\u00e3o.<\/p>\n<p>Vamos pegar o resultado agora com o comando getfacl, ele ir\u00e1 nos mostrar como est\u00e3o aplicadas as ACL (o que tem por tr\u00e1s do +).<\/p>\n<p># getfacl pasta1\/<\/p>\n<p># file: pasta1<br \/>\n# owner: root<br \/>\n# group: root<br \/>\nuser::rwx<br \/>\nuser:root:rwx<br \/>\ngroup::rwx<br \/>\ngroup:edita:rwx<br \/>\nmask::rwx<br \/>\nother::r-x<\/p>\n<p>Podemos observar que as ACL foram corretamente aplicadas, de modo que o grupo edita \u00e9 capaz de editar, ler e listar o conte\u00fado da pasta1.<\/p>\n<p>Agora essa pasta est\u00e1 com as ACL definidas, portanto, podemos testar, entrando com os usu\u00e1rios bloqueados, usu\u00e1rios que s\u00e3o aceitos somente para leitura, usu\u00e1rios que s\u00e3o aceitos para controle total (leitura e escrita e etc).<\/p>\n<p>Mais exemplos<\/p>\n<p>Se necessitar que um usu\u00e1rio tenha apenas permiss\u00e3o de leitura em um determinado arquivo voc\u00ea pode usar a seguinte sintaxe abaixo:<\/p>\n<p># setfacl -m u:usuario:r&#8211; arquivo.txt<\/p>\n<p>Se for um grupo altere para &#8220;g:grupo&#8221; e assim por diante, \u00e9 infinito o que voc\u00ea pode fazer com essas ACL.<\/p>\n<p>Configura\u00e7\u00f5es para o Samba<\/p>\n<p>Para que o samba consiga interpretar corretamente as ACL voc\u00ea deve seguir o exemplo abaixo:<\/p>\n<p>Adicione o par\u00e2metro map acl inherit = Yes no compartilhamento no qual voc\u00ea deseja ativar ACL (ou na pasta compartilhada que voc\u00ea alterou permiss\u00f5es e deseja efetivar as ACL).<\/p>\n<p>Por padr\u00e3o eu crio o meu compartilhamento da maneira descrita abaixo:<\/p>\n<p>[compartilhado]<br \/>\ncomment = compartilhado<br \/>\npath = \/compartilhado<br \/>\nread only = No<br \/>\ncreate mask = 0777<br \/>\nforce create mode = 0777<br \/>\ndirectory mask = 0777<br \/>\nforce directory mode = 0777<br \/>\nmap acl inherit = Yes<\/p>\n<p>N\u00e3o esque\u00e7a depois de alterar as ACL de reiniciar o samba para que ele aplique as configura\u00e7\u00f5es corretas.<\/p>\n<p># \/etc\/init.d\/samba restart<\/p>\n<p>Distribui\u00e7\u00f5es como fedora, mandriva, openSuSE, pode-se utilizar tamb\u00e9m o um dos seguintes comandos (variando de distribui\u00e7\u00e3o pra distribui\u00e7\u00e3o):<\/p>\n<p># service samba restart<br \/>\n# service smb restart<\/p>\n<p>Cr\u00e9ditos: www.hardware.com.br<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para uma perfeita integra\u00e7\u00e3o \u00e9 necess\u00e1rio os diret\u00f3rios devem ter permiss\u00f5es semelhantes: Ativar ACL no diret\u00f3rio: [root@vpn cliente1]# cat \/etc\/fstab # Home em passwd fica com \/chroot\/\/home\/cliente3\/cliente3 \/home\/cliente3 \/chroot\/home\/cliente3 auto bind,acl,user_xattr 0 0 \/home\/cliente1 \/chroot\/home\/cliente1 auto bind,acl,user_xattr 0 0 [root@vpn cliente1]# ls -lah \/home\/cliente2\/cliente2\/ total&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/667"}],"collection":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=667"}],"version-history":[{"count":1,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/667\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/667\/revisions\/668"}],"wp:attachment":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}