我們有一個集群,它使用內部 LDAP 網域進行使用者身份驗證,該用戶身份驗證先前使用儲存在 LDAP 中的密碼。現在,我們已將登入電腦移至使用 krb5 針對外部 kdc 進行密碼驗證。如果可以的話,我們希望刪除本機 LDAP 密碼。 ldap 中是否有與傳統 unix auth 指令等效的指令usermod -p '!' user
?
答案1
對於 OpenLDAP,刪除userPassword
屬性來自每個用戶帳戶。
不幸的是,沒有用於管理 LDAP 使用者帳戶的標準命令,因此您需要ldapsearch | awk/sed/grep | ldapmodify
使用 Perl/Python 或編寫批次更新腳本。
或者:您不必完全停用 LDAP 密碼項目驗證,能讓 LDAP 伺服器根據 Kerberos 驗證綁定密碼。當然,這不如實際的 Kerberos 驗證 (SASL GSSAPI),但如果您仍然擁有依賴 LDAP「簡單綁定」的軟體,它可能會很有用。
將每個使用者的userPassword
屬性變更為{SASL}user@REALM
(包含其 Kerberos 主體)將使 OpenLDAP 使用「saslauthd」守護程式(來自 Cyrus SASL)執行直通密碼驗證。將其配置為啟動saslauthd -a krb5
,它將根據您的 Kerberos KDC 驗證密碼。
請注意,saslauthd需要系統在其機器金鑰表 (/etc/krb5.keytab) 中有一個「host/」主體。