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 ...