我正在运行 Lucid。我之前设置过 openldap 和 samba,这个问题从那时起就一直存在,我仍然不知道如何修复它。我使用 webmin 的 LDAP 客户端创建了一个“testuser”帐户,并收到以下错误:
failed to save user : /usr/bin/pdbedit failed :
pdb_set_user_sid_from_string: -21020 isn't a valid SID!
init_sam_from_ldap: no sambaSID or sambaSID attribute found for this user atest
ldapsam_getsampwnam: init_sam_from_ldap failed for user 'testuser'!
ldapsam_add_sam_account: User 'testuser' already in the base, with samba attributes
我认为 SAMBA 和 OpenLDAP 集成无法正常工作。即使出现上述错误,也会创建“testuser”帐户。我可以通过 SSH 使用此帐户登录,但无法登录同一台服务器上的 Samba 服务器。错误的最后一行表明某些配置重叠,但我不知道在哪里以及如何修复它。
更新:
以下是 Webmin 的 LDAP 用户和组配置页面中的 SAMBA 设置部分:
和
Samba 版本 3.4.7 LDAP 协议版本 3
更新 2:
我从“LDAP 客户端 -> LDAP 浏览器”复制并粘贴了 Samba 服务器的 SambaID 后,错误消失了。因此,“Samba3 的域 SID”的输入如下所示:
S-1-5-22-3845707085-2256048510-3517135715。
现在 samba 用户已创建,但我仍然无法登录 samba 服务器。现在的问题是密码同步。
答案1
我尝试以下命令添加组 ID 为 10000 的 testuser 帐户:
sudo smbldap-useradd -a -P testuser
收到错误:
Can't call method "get_value" on an undefined value at /usr/sbin/smbldap-useradd line 231, <DATA> line 466.
查看脚本 /usr/sbin/smbldap-useradd 我发现必须为这个新用户指定一个组 ID。因此下一个命令:
sudo smbldap-useradd -a -P -g 10000 testuser
其中 10000 是目标 LDAP 组的组 ID。我收到此错误:
Error: SID not set for unix group 10000
check if your unix group is mapped to an NT group
我继续通过 webmin 的“Samba Windows 文件共享”模块同步用户组,并添加了一个 samba 组,该组也连接到 id 为 10000 的 Unix/LDAP 组。如果有人仍然感到困惑,请看下面的屏幕截图:
问题解决了:-)
我还继续在“Samba Windows 文件共享”中设置用户和组同步,以防止将来手动处理 SAMBA 组和用户。