如何从 Linux LDAP 客户端更改 Samba 密码?

如何从 Linux LDAP 客户端更改 Samba 密码?

我搭建了一个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同步?也许可以设置“ ”来做到这一点?sambaNTPasswordunixPasswordexop

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表示永不过期。

相关内容