我有一个带有 LDAP 后端的 3.5.6 samba 服务器(都在 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 地址;主要的 147.102.160.1 和附加的 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 流量)。
尝试将脚本从 更改
smbldap-useradd -w -i %u
为
smbldap-useradd -W %u
. 这应该可以解决您的问题。尝试删除
-i
in可能是信任问题
或更改
%u
为%m
与客户端的 NetBIOS 名称连接