Re: Permissões Linux X Samba
Olá,
Julio escreveu:
Olá pessoal.
Tenho uma dúvida, acredito ser coisa simples.
Quando crio um compartilhamento no samba, posso setar o grupo que terá
acesso aos arquivos do compartilhamento:
valid users = +financeiro
Adiciono um usuário para o grupo financeiro:
useradd fulano -G joao -d /dev/null -s /bin/false
Por quê não adicionar o usuário diretamente já no grupo financeiro ?
Usando sua sintaxe acima, ficaria algo como :
$ useradd fulano -G financeiro -d /dev/null -s /bin/false
Dessa forma, o usuário será cadastrado no grupo "financeiro"
normalmente.
Mas junto com isso, é criado um grupo (sem nenhum usuário setado) com
o nome joao em /etc/group:
joao:x:1021:
Sim, mas você poderia evitar esse problema criando o usuário já com
seu grupo inicial (grupo primário) como sendo o grupo financeiro, o que
faria com que quaisquer arquivos e diretórios criados pelo mesmo
tivessem como grupo o grupo financeiro e não o grupo joao.
Ainda usando sua sintaxe para o useradd, ficaria algo como :
$ useradd fulano -g financeiro -d /dev/null -s /bin/false
E aqui vem o problema: Quando crio um compartilhamento, dou acesso
total somente ao dono (quem criou, joao no caso) e ao grupo dele
(financeiro)....valid users = +financeiro...
Mas quando o usuário joao cria um diretório em qualquer lugar, o
diretório recebe o dono "joao" e o grupo "joao" com permissões -
drwxrwxr-x, somente para o grupo joão e para o usuário joão (não o
grupo autorizado pelo compartilhamento, que é o grupo financeiro) .
Uma coisa é autorizar qual o grupo tem acesso ao compartilhamento
pelo Samba (via valid users) e outra é definir qual o grupo
inicial/primário do usuário na criação do próprio usuário.
A criação de arquivos e diretórios por padrão (independente de
Samba, mesmo em GNU/Linux puro) sempre usa como grupo o grupo
inicial/primário do usuário, o qual você especificou como joao em seu
exemplo.
Se você especificar como financeiro, seu problema é resolvido.
Logo, outro usuário (que é do grupo financeiro, e não do grupo joao)
não tem acesso, pois eu defini que somente os usuários do grupo
poderão ter acesso, porém o novo diretório terá permissões de escrita
somente para o próprio grupo joao (e não para outros usuários do grupo
financeiro).
drwxrwxr-x 2 joao joao 48 2008-06-25 15:40 teste
Novamente, se você definir o grupo inicial/primário do usuário como
financeiro, os arquivos/diretórios criados pelo mesmo terão como grupo o
grupo financeiro e, dessa forma, outro usuários do grupo financeiro
terão acesso aos mesmos conforme você deseja.
O problema está na criação de arquivos e diretórios pelos usuários.
Cada usuário pertencente ao grupo financeiro deverá criar seus
diretórios mapeando os mesmos para o grupo financeiro, e não o grupo
criado automaticamente com o nome do usuário.
Alguém sabe como posso arrumar isso?
Criando o usuário já com seu grupo inicial/primário como o grupo
financeiro :-) É uma das opções, veja outras abaixo.
Setei as opções do samba para forçar criar arquivos e diretórios
"escancarados", porém não é a melhor opção...
force create mode = 0777
force directory mode = 0777
Alguma ajuda?
Caso não queira ou não possa criar os usuários já com grupo
inicial/primário como o grupo financeiro, você pode usar a diretiva
"force group" dentro do compartilhamento no qual você quer que todos os
arquivos e diretórios criados tenham como grupo o grupo financeiro.
Por exemplo
[financeiro]
...
force group = financeiro
...
Isso força os arquivos e diretórios criados dentro desse
compartilhamento (somente via Samba) a sempre terem o grupo financeiro,
mesmo o grupo inicial/primário dos usuários sendo outro grupo diferente
do grupo financeiro.
Opcionalmente, você pode usar o suporte a ACLs de sistema de
arquivos (comandos setfacl no pacote Debian de nome "acl") e definir uma
ACL "default" para o diretório apontando pelo compartilhamento em
questão indicando que o grupo financeiro sempre terá as permissões que
você deseja para o grupo financeiro e todos os arquivos e diretórios
criados sob o mesmo herdarão tais permissões.
Exemplo :
$ setfacl -d -m g:financeiro:rwx /diretorio/compartilhamento/financeiro
Logicamente, lembrando que, para ter a possibilidade de utilizar
ACLs de sistema de arquivos, a partição que contém o sistema de arquivos
que irá receber as ACLs precisa estar montada com a opção de permissão
de uso de ACLs definida (opção "acl" na montagem da partição em questão).
Espero ter ajudado.
Atenciosamente,
--
André Luís Lopes
andrelop@{andrelop,debian}.org
http://www.andrelop.org/blog/
Public GPG KeyID : 9D1B82F6
Reply to: