[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: