A integração do Active Directory não está funcionando corretamente com o winbind e o samba

4

Estou tentando fazer com que minha caixa de linux use autenticação de diretório ativo. Eu acredito que tenho quase tudo configurado corretamente. Eu posso emitir wbinfo -g e wbinfo -u e ver todos os grupos e usuários respectivamente.

Breve introdução à minha configuração:

O nome de usuário que eu uso na minha caixa linux para fazer coisas administrativas é nick . Meu nome de usuário do diretório ativo é nwalke . Eles têm duas senhas diferentes. Consigo fazer login na caixa com nick e a senha desse usuário e também consigo fazer o login como nwalke com a senha de nwalke .

A parte curiosa:

Ao criar o diretório pessoal do usuário do diretório ativo, eu executo um script que requer acesso root. Isso é para configurar algumas coisas do sistema como um compartilhamento de samba para eles. Quando efetuo login como nwalke , insiro minha senha nwalke e ela é bem-sucedida. Eu sou então saudado com [sudo] password for nick: . Se eu inserir minha senha nwalke aqui, ele diz Sorry, try again. . Se eu digitar a senha de nick , ele diz Sorry, user nick is not allowed to execute scriptname as root .

Se eu groups as nwalke , vejo que magicamente meu usuário recebeu o grupo nick .

Agora, acidentalmente, achei que nick tinha um UID de 100, não 1000. Portanto, originalmente no meu smb.conf , eu tinha idmap uid 1000-10000 . A única coisa que posso pensar é que eu entrei com nwalke enquanto isso ainda estava definido e agora estou sendo apresentado a um UID de 1000 forçando o linux a pensar que eu sou nick .

Não sei bem para onde ir a partir daqui. Como eu disse, tenho certeza que o diretório ativo está se comunicando com o meu servidor corretamente, mas algo não deve ser mapeado no lado do Linux.

Alguma opinião?

Aqui está meu smb.conf :

[global]
    security = ads
    netbios name = hostname
    realm = COMPANY.COM
    password server = adshost.company.com
    workgroup = COMPANY
    idmap uid = 10000-90000
    idmap gid = 10000-90000
    winbind separator = +
    winbind enum users = no
    winbind enum groups = no
    winbind use default domain = yes
    template homedir = /home/%D/%U
    template shell = /bin/bash
    client use spnego = yes
    domain master = no
    load printers = no
    printing = bsd
    printcap name = /dev/null
    disable spoolss = yes

Eu preciso ligar a um usuário na caixa do Linux de alguma forma?

    
por tubaguy50035 15.10.2012 / 22:14

2 respostas

3

Parece que você tem uma sobreposição de UID.
Se nwalke e nick compartilharem o mesmo UID numérico, a primeira correspondência de nsswitch vencerá por itens como id , sudo , ls , etc. (e a primeira correspondência geralmente está fora do arquivo passwd, a menos que você alterei a ordem em /etc/nsswitch.conf ou equivalente).

(os logins funcionarão com qualquer dos nomes, porque o login procura o usuário pelo nome. Ter dois usuários com o mesmo nome causará um caos interessante ...)

Seus UIDs / GID locais ( /etc/passwd , /etc/group ) e remotos (NIS, Samba, LDAP, o que for) não devem se sobrepor. Corrija esse problema central e o restante resolverá sozinho.

    
por 17.10.2012 / 18:04
3

I have changed the value in my smb.conf to 10,000 and it still feels like nwalke is getting paired with 1000. How do I resolve that?

Não consigo lembrar qual arquivo é, e atualmente não tenho um sistema para verificar.

Quando um usuário se conecta pela primeira vez, um ID será atribuído e, em seguida, será armazenado em um dos bancos de dados do Samba em /var/lib/samba/ Dê uma olhada nessa pasta, pode ser óbvio qual arquivo é. Você poderia tentar parar o Samba e apenas mover / excluir todos os arquivos, embora seja necessário ingressar novamente no domínio, pois as credenciais da conta da máquina também são armazenadas em um desses bancos de dados.

    
por 17.10.2012 / 19:55