我正在使用CentOS-ds(基于Redhat-DS和389目錄服務器).
我有LDAP設置,并努力驗證用戶(和Sudo,這是一個方便的功能!).甚至passwd也很好地改變了存儲在Ldap中的密碼.但是,我有一個小問題.登錄服務器后,如何強制所有用戶帳戶創建新密碼?我會這樣做的正常方式:
chage -d 0 username
似乎不是’ldap-ified’.
如何強制人們在下次(ssh)登錄時創建新密碼?我需要創建用戶帳戶,我真的不希望人們保留我為他們設置的密碼.
*編輯 – 我已將LDAP服務器設置為在重置密碼時強制更改密碼.但是,我似乎無法找到一種方法以正確的方式“重置”密碼來觸發它. (我只能找到以目錄管理員身份登錄并更改密碼)
* EDIT2.由于我們將在計算出這部分時將許多機器移動到LDAP,因此我編寫了一個腳本以root身份運行以設置LDAP身份驗證.也許我在這里錯過了一些東西? (編輯出服務器和basedn.)
#!/bin/sh
#
authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=, --ldapbasedn="" --update
echo 'sudoers: files ldap' >> /etc/nsswitch.conf
echo 'base
timelimit 120
bind_policy soft
bind_timelimit 120
idle_timelimit 3600
uri ldap:///
uri ldap:///
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
sudoers_base ou=SUDOers,
' > /etc/ldap.conf
我找到了解決方案:
在用戶LDAP條目中,setShadowLastChange = 0這將強制用戶必須重置其LDAP密碼.但是,還有另一個錯誤,您必須修改LDAP服務器上的權限(ACL)(我在OU = People上有默認的Allow Self entry修改),以允許他們修改目標ShadownLastChange.
否則,他們無法更改值,并且它保持為零,強制他們每次登錄時重做密碼.