quinta-feira, 7 de fevereiro de 2013

Compartilhamento dentro de Compartilhamento usando ACL - Samba

Bom,

esse dias me deparei com um problema pois tenho um compartilhamento do samba e precisaria criar um outro de um diretório dentro desse compartilhamento e com outras permissões:

EX:

/home/teste -> Compartilhado
/home/teste/outro -> A ser compartilhado

Legal até ai tudo bem fiz o seguinte no meu smb.conf


[teste]
       path = /home/teste
        write list = +area_tecnica
        read only = no
        create mode = 0775
        force create mode = 0775
        create mask = 0775
        directory mode = 2775
        force directory mode = 2775

[outro]
       path = /home/teste/outro
        write list = +area_tecnica, +financeiro
        read only = No
        create mode = 0777
        force create mode = 0777
        create mask = 0777
        directory mode = 2777
        force directory mode = 2777

Percebam o meu problema o primeiro diretório as permissões são 2775 e 0775 respectivamente e só a área técnica pode acessar

Já o outro diretório além da area_tecnica o financeiro também vai usar e as permissões são 0777 e 2777.

Ai começou o problema pois quando alguém criava um arquivo ele sempre setava as permissões para 775 fazendo com o pessoal do financeiro só tivesse o poder de ler e não de escrever e lá ia eu alterar manualmente com o comando chmod.

A solução:

A solução encontrada foi usar "acls". Bom primeiro instale o pacote:

aptitude install acl

Depois remonte a partição ativando o suporte ao acl (lembre de especificar seu ponto de montagem caso seja diferente)

mount -o remount,acl /

Após isso é só definir o que quer no diretório com o comando setfacl, por exemplo

setfacl -d -R -m g:financeiro:rwx /home/teste/outro

Neste caso eu defini como padrão (-d) que o grupo financeiro tem permissão de leitura, escrita e execução (-m g:financeiro:rwx) no diretório /home/teste/outro e caso ele tenha arquivos ou diretórios eu defini o modo recursivo (-R) ativando assim em tudo dentro dele

A opção -m é de "modify" (modificar)

Legal vamos ver outro exemplo:

setfacl -d -R -m o::r-x /home/teste/outro (Aqui os "outros" terão permissão de leitura e execução

Caso não especifique a opção "-d" tudo que for criado dentro do diretório não seguirá a acl.

E como faça para ver estes permissões? Simples:

getfacl /home/teste/outro

# file: /home/teste/outro/
# owner: root
# group: area_tecnica
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:financeiro:rwx
default:mask::rwx
default:other::rwx

É isso aí, mas ficou faltando como remover a acl e inserir no boot, então, lá vai:

Remover a acl:

setfacl -R -b /home/teste/outro

Inserir no boot:

/dev/sda1           /               ext3    errors=remount-ro,acl            0       1
/dev/sda2           /home      ext3    defaults,acl                             0       2


Pronto basta testar.

Fuiiiiiiiii

Nenhum comentário:

Postar um comentário