我们已经安装了 CentOS Directory Server (389 DS) 并让 Samba 使用它作为后端。这非常有效,除了在启用密码同步时,smb.conf
它仅以一种方式同步。我可以在使用时同步 ldap/samba 密码,smbpasswd -a
但不能passwd
。为了解决这个问题,我在 PAM 系统身份验证设置中添加了一行,以便在更改密码时更新 smb 密码文件。这又有效了,但我收到以下错误。
Changing password for user testuser1.
Enter login(LDAP) password:
New UNIX password:
Retype new UNIX password:
LDAP password information update failed: Invalid credentials
passwd: Authentication failure
此错误不正确,因为 LDAP 和 Samba 密码均已成功更改。有谁知道我为什么会收到错误吗?
我添加到 PAM 的行以粗体显示:
password requisite pam_cracklib.so try_first_pass retry=3
password optional pam_smbpass.so use_authtok use_first_pass
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
我的smb.conf
文件有以下内容:
[global]
workgroup = MyGroup
security = user
passdb backend = ldapsam:ldaps://192.168.124.89/
ldap admin dn = cn=Directory Manager
ldap suffix = dc=example,dc=com
ldap user suffix = ou=People
ldap group suffix = ou=Groups
ldap passwd sync = yes
ldap delete dn = no
wins support = yes
正如我之前所说,一切都在按预期进行。我只是不希望用户在看到令人讨厌的错误消息时感到惊慌,我希望它消失。
答案1
(是的,7 年后,希望它能早点得到解决 - 这是供当前和未来参考) smbpasswd 可以处理 LDAP passwd 同步,回复:
-w / -W 开关,来自 samba.org 网站上的手册页:
-w 密码 仅当 Samba 已编译为支持 LDAP 时,此参数才可用。 -w 开关用于指定与 ldap admin dn 一起使用的密码。请注意,密码存储在 Secrets.tdb 中,并且与管理员的 DN 无关。这意味着如果 ldap admin dn 的值发生更改,则也需要手动更新密码。
-W 注意:此选项与“-w”相同,只是应使用标准输入输入密码。
仅当 Samba 已编译为支持 LDAP 时,此参数才可用。 -W 开关用于指定与 ldap admin dn 一起使用的密码。请注意,密码存储在 Secrets.tdb 中,并且与管理员的 DN 无关。这意味着如果 ldap admin dn 的值发生更改,则也需要手动更新密码。