Checando ACL em um diretório linux

Para uma perfeita integração é necessário os diretórios devem ter permissões semelhantes:

Ativar ACL no diretório:
[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 44K
drwxrwx—+ 5 cliente2 cliente2 4.0K Jun 26 2012 .
drwxrwx—+ 3 cliente2 cliente2 4.0K Jun 26 2012 ..
-rwxrwx—+ 1 cliente2 cliente2 178 Nov 5 2013 .bash_history
drwxrwx—+ 2 cliente2 cliente2 4.0K Jun 10 10:59 inbound
drwxrwx–x+ 2 cliente2 cliente2 4.0K Nov 7 2013 outbound
drwx—— 2 cliente2 cliente2 4.0K Jun 21 2012 .ssh

[root@vpn cliente1]# getfacl /home/cliente2/cliente2/outbound/
getfacl: Removing leading ‘/’ from absolute path names
# file: home/cliente2/cliente2/outbound
# owner: cliente2
# group: cliente2
user::rwx
user:profit:rwx
user:monitor:rwx
user:cliente2:rwx
group::–x
mask::rwx
other::–x
default:user::rwx
default:user:profit:rwx
default:user:monitor:rwx
default:user:cliente2:rwx
default:group::–x
default:mask::rwx
default:other::–x

[root@vpn cliente1]# ls -lah /home/cliente2/
total 24K
drwxrwx—+ 3 cliente2 cliente2 4.0K Jun 26 2012 .
drwxrwx–x+ 32 root root 4.0K Sep 17 2013 ..
drwxrwx—+ 5 cliente2 cliente2 4.0K Jun 26 2012 cliente2

Personalizando/refinando permissões de arquivo com ACL

Para utilizar as ACL vamos usar 2 comandos basicos, setfacl e getfacl, o set é para definir e o get é para saber quais foram as permissões definidas (ou seja o que tem por trás do +)

Supondo que eu tenha o grupo “edita” e quero que esse grupo tenha controle total para a pasta1, você deve utilizar o seguinte comando:

Primeiramente vamos criar o diretório

# mkdir pasta1

Definir para controle total do grupo e usuário (root), e leitura e execução para outros

# chmod 775 pasta1/

Agora vamos executar o comando ls -l para ver o como está sendo exibido:

# ls -l

total 2
drwxrwxr-x 2 root root 1024 2008-05-06 11:41 pasta1

Vamos então aplicar uma ACL simples para que o grupo edita possa ter execução total

# setfacl -m g:edita:rwx pasta1/

Executando o comando ls -l

# ls -l

total 2
drwxrwxr-x+ 2 root root 1024 2008-05-06 11:41 pasta1

Reparem que agora existe um + após os 9 digitos binários, o que significa que existem permissões extras além do já permitido por padrão.

Vamos pegar o resultado agora com o comando getfacl, ele irá nos mostrar como estão aplicadas as ACL (o que tem por trás do +).

# getfacl pasta1/

# file: pasta1
# owner: root
# group: root
user::rwx
user:root:rwx
group::rwx
group:edita:rwx
mask::rwx
other::r-x

Podemos observar que as ACL foram corretamente aplicadas, de modo que o grupo edita é capaz de editar, ler e listar o conteúdo da pasta1.

Agora essa pasta está com as ACL definidas, portanto, podemos testar, entrando com os usuários bloqueados, usuários que são aceitos somente para leitura, usuários que são aceitos para controle total (leitura e escrita e etc).

Mais exemplos

Se necessitar que um usuário tenha apenas permissão de leitura em um determinado arquivo você pode usar a seguinte sintaxe abaixo:

# setfacl -m u:usuario:r– arquivo.txt

Se for um grupo altere para “g:grupo” e assim por diante, é infinito o que você pode fazer com essas ACL.

Configurações para o Samba

Para que o samba consiga interpretar corretamente as ACL você deve seguir o exemplo abaixo:

Adicione o parâmetro map acl inherit = Yes no compartilhamento no qual você deseja ativar ACL (ou na pasta compartilhada que você alterou permissões e deseja efetivar as ACL).

Por padrão eu crio o meu compartilhamento da maneira descrita abaixo:

[compartilhado]
comment = compartilhado
path = /compartilhado
read only = No
create mask = 0777
force create mode = 0777
directory mask = 0777
force directory mode = 0777
map acl inherit = Yes

Não esqueça depois de alterar as ACL de reiniciar o samba para que ele aplique as configurações corretas.

# /etc/init.d/samba restart

Distribuições como fedora, mandriva, openSuSE, pode-se utilizar também o um dos seguintes comandos (variando de distribuição pra distribuição):

# service samba restart
# service smb restart

Créditos: www.hardware.com.br

Deixe um comentário