A integração do Active Directory não funciona corretamente com winbind e samba

A integração do Active Directory não funciona corretamente com winbind e samba

Estou tentando fazer com que minha caixa Linux use a autenticação do Active Directory. Acredito que tenho quase tudo configurado corretamente. Consigo emitir wbinfo -ge wbinfo -uver todos os grupos e usuários respectivamente.

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

O nome de usuário que uso na minha caixa Linux para fazer tarefas administrativas é nick. Meu nome de usuário do diretório ativo é nwalke. Eles têm duas senhas diferentes. Consigo fazer login na caixa com nicka senha desse usuário e também consigo fazer login nwalkecom nwalkea senha de.

A parte curiosa:

Ao criar o diretório inicial do usuário do Active Directory, executo um script que requer acesso root. Isso serve para configurar algumas coisas em todo o sistema, como um compartilhamento de samba para eles. Quando faço login como nwalke, digito minha nwalkesenha e ela é bem-sucedida. Sou então saudado com [sudo] password for nick:. Se eu inserir minha nwalkesenha aqui, ela diz Sorry, try again.. Se eu digitar nicka senha, aparece Sorry, user nick is not allowed to execute scriptname as root.

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

Agora, acidentalmente pensei que nicktinha um UID de 100, não 1000. Então, originalmente no meu smb.confeu tinha idmap uid 1000-10000. A única coisa que consigo pensar é que entrei nwalkeenquanto isso ainda estava definido e agora estou recebendo um UID de 1000, forçando o Linux a pensar que sou nick.

Não tenho muita certeza de para onde ir a partir daqui. Como eu disse, tenho quase certeza de que o Active Directory está se comunicando corretamente com meu servidor, mas algo não deve ser mapeado diretamente no lado do Linux.

Alguma ideia?

Aqui está o 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

Preciso me vincular a um usuário na caixa do Linux de alguma forma?

Responder1

Parece que você tem uma sobreposição de UID.
Se nwalkee nickcompartilharem o mesmo UID numérico, a primeira correspondência de nsswitch vencerá para coisas como id, sudo, ls, etc. (e a primeira correspondência geralmente está fora do arquivo passwd, a menos que você tenha alterado a ordem /etc/nsswitch.confou equivalente).

(logins funcionarão com qualquer um 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/GIDs locais ( /etc/passwd, ) e remotos (NIS, Samba, LDAP, qualquer que seja) não devem se sobrepor. /etc/groupCorrija esse problema central e o resto se resolverá sozinho.

Responder2

Alterei o valor no meu smb.conf para 10.000 e ainda parece que o nwalke está sendo emparelhado com 1000. Como resolvo isso?

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. /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 lá, embora fosse necessário ingressar novamente no domínio, já que as credenciais da conta da máquina também são armazenadas em um desses bancos de dados.

informação relacionada