如何從 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
同步?也許設置“ ”來做到這一點?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
表示沒有過期。