Tente alterar o script de smbldap-useradd -w -i %u
codificar%. Isso deve resolver seu problema.
Eu tenho um servidor samba 3.5.6 com um backend LDAP (ambos no Debian 6.0). Eu tenho adicionado com sucesso máquinas Windows XP ao domínio por anos. Eu agora tento adicionar o Windows 7. Eu fiz as mudanças de registro recomendadas , mas eu não tenho nenhum sucesso tão longe. Aqui está o que acontece:
1. Eu vou para o nome do computador, selecione "Domínio" em vez de "Grupo de trabalho", digite o nome do domínio, clique em OK. Ele me pede o nome de usuário e senha de uma conta que pode adicionar computadores ao domínio; Eu entro neles. Após cerca de 40 segundos, recebo a seguinte mensagem:
The following error occurred attempting to join the domain "ITIA":
The specified computer account could not be found. Contact an administrator to verify the account is in the domain. If the account has been deleted unjoin, reboot, and rejoin the domain.
Apesar disso, o servidor samba cria com sucesso a conta do computador.
2. Portanto, se eu tentar novamente uma segunda vez, sem excluir a conta de computador já criada, recebo um erro diferente:
The following error occurred attempting to join the domain "ITIA":
The specified account already exists.
(Note que até há pouco tempo o samba não estava configurado para criar automaticamente contas de computador. O que eu fazia sempre que queria um XP para participar era criá-lo manualmente. Quando tentei resolver o problema de junção do Windows 7, configurar o samba para fazer isso automaticamente, pois é isso que a maioria das pessoas faz, como eu entendo, e eu pensei que poderia estar relacionado. Eu não tentei adicionar um XP desde que fiz essa mudança, então eu não sei se funciona, mas quer funcione ou não, o problema continua.)
Atualização 1: Aqui estão as partes relevantes do smb.conf:
[global]
panic action = /usr/share/samba/panic-action %d
workgroup = ITIA
server string = Itia file server
announce as = NT
interfaces = 147.102.160.1
volume = %h
passdb backend = ldapsam:ldap://ldap.itia.ntua.gr:389
ldap admin dn = uid=samba,ou=daemons,dc=itia,dc=ntua,dc=gr
ldap ssl = off
ldap suffix = dc=itia,dc=ntua,dc=gr
ldap user suffix = ou=people
ldap group suffix = ou=groups
ldap machine suffix = ou=computers
unix password sync = no
add machine script = smbldap-useradd -w -i %u
log file = /var/log/samba/samba-log.all
log level = 3
max log size = 5000
syslog = 2
socket options = SO_KEEPALIVE TCP_NODELAY
encrypt passwords = true
password level = 1
security = user
domain master = yes
local master = no
wins support = yes
domain logons = yes
idmap gid = 1000-2000
Atualização 2: O servidor possui uma única interface de rede eth1 (também uma eth0 não utilizada que aparece apenas nas mensagens de inicialização do kernel) e dois endereços IP; o principal, 147.102.160.1, e um adicional, 147.102.160.37, que vem com "ip addr add 147.102.160.37/32 dev eth1" (usado apenas para um site que possui um certificado diferente de outros sites da Web servidos de a mesma máquina). Um dos problemas que enfrentei recentemente foi que o samba estava usando o último endereço IP. Eu consertei isso adicionando a instrução "interfaces = 147.102.160.1" no smb.conf.
Agora:
acheloos:/etc/apache2# tcpdump host 147.102.160.40 and not port 5900
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
13:13:56.549048 IP lithaios.itia.civil.ntua.gr.netbios-dgm > 147.102.160.255.netbios-dgm: NBT UDP PACKET(138)
13:13:56.549056 ARP, Request who-has acheloos2.itia.civil.ntua.gr tell lithaios.itia.civil.ntua.gr, length 46
13:13:56.549091 ARP, Reply acheloos2.itia.civil.ntua.gr is-at 00:10:4b:b4:9e:59 (oui Unknown), length 28
13:13:56.549324 IP acheloos.itia.civil.ntua.gr.netbios-dgm > lithaios.itia.civil.ntua.gr.netbios-dgm: NBT UDP PACKET(138)
13:13:56.549608 IP lithaios.itia.civil.ntua.gr.netbios-dgm > acheloos2.itia.civil.ntua.gr.netbios-dgm: NBT UDP PACKET(138)
13:13:56.549741 IP acheloos.itia.civil.ntua.gr.netbios-dgm > lithaios.itia.civil.ntua.gr.netbios-dgm: NBT UDP PACKET(138)
13:13:56.550364 IP lithaios.itia.civil.ntua.gr.netbios-dgm > acheloos.itia.civil.ntua.gr.netbios-dgm: NBT UDP PACKET(138)
13:13:56.550468 IP acheloos.itia.civil.ntua.gr.netbios-dgm > lithaios.itia.civil.ntua.gr.netbios-dgm: NBT UDP PACKET(138)
(acheloos2 é o segundo endereço IP, 147.102.160.37). O despejo acima ocorre quando clico em "OK" (para ingressar no domínio), até que ele me pede o nome de usuário e a senha de um usuário que pode ingressar no domínio. Eu não sei porque o cliente está contatando o segundo endereço IP. Tentei desativá-lo temporariamente, mas ainda tinha algum tráfego ARP relacionado (embora eu não ache que haja tráfego IP).
Tente remover o -i
em
add machine script = smbldap-useradd -w -i %u
Possivelmente uma solução confiável
Ou altere %u
para %m
para se conectar ao nome NetBIOS do cliente