我搭建了一个ubuntu lucid LDAP+SAMBA PDC,主要参考了这篇文章:http://ubuntuforums.org/showthread.php?t=1499753- 可以。用户可以通过登录 Win Pc 并点击Ctrl+ Alt+来更改密码Del。这样,unix 密码也会更改 - samba 会处理此问题。
我也使用该 LDAP 服务器从 ubuntu 桌面进行身份验证。他们可以登录并使用 更改密码/usr/bin/passwd
,但这样 samba 密码就不会改变。
问题:
1)有没有办法改变不是不仅有用户密码,还有属性sambaNTpassword
?我读过pam_smbpass.so
但我不知道如何使用它 - 我甚至在某处读到过,这样只能更新本地 smb 密码。
2) 如果第一个问题的答案是“否”,那么是否有办法根据进行slapd
同步?也许可以设置“ ”来做到这一点?sambaNTPassword
unixPassword
exop
3) 如果答案再次为“否”,那么我可以使用 userPassword 中的清晰的 thext 密码并运行外部脚本来计算哈希值sambaNTpassword
。我试过了jacksum -a md4 -q "txt:password"
,但计算出的哈希值不等于存储在 ldap 中的哈希值。我不知道为什么。
4)我还能做什么?
答案1
您可以使用以下方法实现此目的OpenLDAP 的smbk5pwd
覆盖。
需要将此覆盖添加到您的slapd
配置中。然后,通过 exop“更改密码”操作进行的任何密码更改也将更新 Samba(以及可选的 Kerberos)密码。
您可以简单地配置您的 Ubuntu 桌面以通过 exop 密码更改操作/etc/ldap.conf
。
答案2
在过去十年中,启用此功能的方式发生了变化,因此我写了一篇文章,以简单的方式解释了如何启用 smbk5pwd这里。
简洁版本:
安装 ldap contrib 模块,例如基于 debian 的系统:
sudo apt install slapd-contrib
- 告诉 OpenLDAP 加载模块
创造smbk5pwd-module.ldif
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: {1}smbk5pwd.la
并应用:
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f smbk5pwd-module.ldif
- 配置模块
创造smbk5pwd-overlay.ldif
dn: olcOverlay={0}smbk5pwd,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSmbK5PwdConfig
olcOverlay: {0}smbk5pwd
olcSmbK5PwdEnable: samba
olcSmbK5PwdMustChange: 0
并申请
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f smbk5pwd-overlay.ldif
olcSmbK5PwdMustChange
是密码的有效期(以秒为单位),例如5184000
两个月,或31968000
每年更改一次,并有五天的宽限期。0
表示永不过期。