Por que o Samba não permite acesso de gravação para usuários do AD em um grupo local?

0

Configurei o samba 3.6.3 para usar o AD na minha caixa do Ubuntu. A configuração parece estar correta, comandos como getent group, getent passwd retornam grupos e usuários do AD. Eu posso conceder permissões de usuário AD em pastas e usando o sudo que o usuário tem acesso. No entanto, ao passar pelo samba, o usuário não tem acesso à pasta. Aqui está um código de teste. Primeiro apenas testando o winbind e as permissões do linux:

sudo mkdir /tmp/test
sudo chown root:sambashare /tmp/test
sudo chmod 775 /tmp/test
sudo usermod -G sambashare DOM+user1
sudo -u DOM+user2 touch /tmp/test/file
  touch: cannot touch 'test/file': Permission denied
#good because DOM+user2 is not in sambashare group
sudo -u DOM+user1 touch /tmp/test/file
#success!
ls -l /tmp/test
  -rw-r--r-- 1 DOM+user1 DOM+domain users 0 Jan 14 16:53 test/file

Agora, configurando o compartilhamento de samba

[Test]
        path = /tmp/test
        writable = yes
        follow symlinks = yes
        valid users = DOM+user1,@sambashare

O diretório é visível para o usuário. Mas criar novo diretório ou arquivo não é permitido.

Se eu alterar as permissões do Linux:

chown DOM+user1 /tmp/test

Eu posso escrever para o compartilhamento de samba no windows. Note que eu não adicionei uma lista de gravação ao samba ou qualquer outra coisa, apenas a propriedade do usuário nesse compartilhamento no linux. E o linux estava permitindo que o usuário escrevesse para essa pasta antes com base em permissões de grupo.

Eu tentei abrir o compartilhamento da caixa do Windows 7 e da caixa do Ubuntu por meio do Go - > Abrir localização - > smb: //. Mesmo problema. Então não acho que sejam janelas.

Alguém sabe o que está acontecendo?

Editar

Estou tentando agrupar usuários de domínio por grupos locais e permitir o acesso a determinados compartilhamentos, portanto, não preciso incomodar os administradores de AD para criar grupos personalizados. Também quero usar as permissões do sistema de arquivos em vez das listas de gravação do samba. É mais limpo e o samba não é o único serviço.

Mapear um grupo de domínio para um grupo linux local não é o que eu estou tentando alcançar.

Portanto, por exemplo, eu crio localmente grupos dev_team1, dev_team2 locais. Adicione DOM + sally para dev_team1 e DOM + john para dev_team2 e, em seguida, defina as permissões do sistema de arquivos usando o ACL.

Eu pensei que essa configuração era possível porque o winbind está mapeando grupos / usuários de domínio para um intervalo especificado pelo samba:

idmap config * : backend = tdb
idmap config * : range = 20000-999999

E quando você executa getent group; getent passwd você recebe uma lista de grupos de domínio / usuários com ID > 20.000. Portanto, com base nisso, presumi que o samba autentica o usuário, atribui a ele um dos IDs e não importa se o ID 20.000 está em um grupo local 500 ou parte do grupo de domínio 21.000.

Acho que não ...

    
por Budric 14.01.2013 / 23:09

1 resposta

4

Método 1 - Alterar Grupo

Tente seguir

chown :DOM+domain /tmp/test

Em seguida, teste novamente.

Método 2 - Grupo de Forças

Use o samba force group para atribuir um grupo padrão ao compartilhamento

[Test]
        path = /tmp/test
        writable = yes
        follow symlinks = yes
        force group = sambashare
        valid users = DOM+user1

Método 3 - Adicionar usuário de domínio a um grupo de domínio

Este é na verdade um método generalizado 1 e o modo comum nesse tipo de compartilhamento

[Test]
        path = /tmp/test
        writable = yes
        follow symlinks = yes
        force group = sambashare
        valid users = @DOM+domainshare, @sambashare

Crie um domínio compartilhado do grupo do AD e adicione qualquer usuário do domínio necessário para acessar o compartilhamento nele.

usuário linux no grupo sambashare pode acessar o compartilhamento.

    
por John Siu 19.01.2013 / 02:01