Samba

如何從 linux ldap 客戶端更改 samba 密碼?

  • January 26, 2021

我已經建立了一個 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 中使用明確的 xt 密碼並執行外部腳本來計算sambaNTpassword. 我試過jacksum -a md4 -q "txt:password"了,但計算出的雜湊值不等於儲存在 ldap 中的雜湊值。我不知道為什麼。

4)我還能做什麼?

您可以通過使用OpenLDAP 的smbk5pwd覆蓋來實現這一點。

需要將此疊加層添加到您的slapd配置中。然後,任何通過 exop“更改密碼”操作更改的密碼也將更新 Samba(以及可選的 Kerberos)密碼。

您只需將 Ubuntu 桌面配置為使用 exop 密碼更改操作即可/etc/ldap.conf

啟用此功能的方式在過去十年中發生了變化,因此我寫了一篇文章,在這裡簡單地解釋瞭如何啟用 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表示沒有過期。

引用自:https://serverfault.com/questions/156334