
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 -g
e wbinfo -u
ver 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 nick
a senha desse usuário e também consigo fazer login nwalke
com nwalke
a 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 nwalke
senha e ela é bem-sucedida. Sou então saudado com [sudo] password for nick:
. Se eu inserir minha nwalke
senha aqui, ela diz Sorry, try again.
. Se eu digitar nick
a senha, aparece Sorry, user nick is not allowed to execute scriptname as root
.
Se eu fizer groups
isso nwalke
, vejo que magicamente meu usuário recebeu o grupo nick
.
Agora, acidentalmente pensei que nick
tinha um UID de 100, não 1000. Então, originalmente no meu smb.conf
eu tinha idmap uid 1000-10000
. A única coisa que consigo pensar é que entrei nwalke
enquanto 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 nwalke
e nick
compartilharem 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.conf
ou 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/group
Corrija 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.