我有一个 3.5.6 samba 服务器和一个 LDAP 后端(均在 Debian 6.0 上)。多年来,我一直成功地将 Windows XP 计算机添加到域中。现在我尝试添加 Windows 7。我已经建议更改注册表,但到目前为止我还没有成功。以下是发生的情况:
1.我转到计算机名称,选择“域”而不是“工作组”,输入域名,单击“确定”。它要求我输入可以将计算机添加到域的帐户的用户名和密码;我输入了它们。大约 40 秒后,我收到以下消息:
尝试加入域“ITIA”时发生以下错误:
找不到指定的计算机帐户。请联系管理员以验证该帐户是否在域中。如果帐户已被删除,请退出,重新启动并重新加入域。
尽管如此,samba 服务器还是成功创建了计算机帐户。
2.因此,如果我第二次尝试而不删除已创建的计算机帐户,我会收到不同的错误:
尝试加入域“ITIA”时发生以下错误:
指定的帐户已存在。
(请注意,直到不久前,samba 还未配置为自动创建计算机帐户。每当我想让 XP 加入时,我都会手动创建它。当我第一次尝试解决 Windows 7 加入问题时,我将 samba 设置为自动执行此操作,因为据我所知,大多数人都是这样做的,而且我认为这可能与此有关。自从进行此更改后,我还没有尝试添加 XP,所以我不知道它是否有效,但无论它是否有效,问题仍然存在。)
更新 1:以下是 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
更新 2:该服务器有一个网络接口 eth1(还有一个未使用的 eth0,只显示在内核启动消息中)和两个 IP 地址;主 IP 地址 147.102.160.1,另一个 IP 地址 147.102.160.37,结果为“ip addr add 147.102.160.37/32 dev eth1”(仅用于证书与同一台机器上的其他网站不同的网站)。我最近遇到的一个问题是 samba 使用后者的 IP 地址。我通过在 smb.conf 中添加“interfaces = 147.102.160.1”语句解决了这个问题。
现在:
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 是第二个 IP 地址,147.102.160.37)。当我单击“确定”(加入域)时,会发生上述转储,直到它要求我输入可以加入域的用户的用户名和密码。我不知道客户端为什么要联系第二个 IP 地址。我尝试暂时停用它,但我仍然有一些相关的 ARP 流量(虽然我认为不是 IP 流量)。
答案1
尝试将脚本从 更改smbldap-useradd -w -i %u
为smbldap-useradd -W %u
。这应该可以解决您的问题。
答案2
-i
尝试删除
add machine script = smbldap-useradd -w -i %u
可能是信任问题
或者改为%u
使用%m
客户端的 NetBIOS 名称进行连接