Ldap
LDAP 複製有效 - 但缺少使用者密碼
我們創建了一個主/從環境,其中一個 ldap 伺服器定期複製另一個。所有條目均已正確複製,但未複製屬性“userPass”。我們假設這是一個 ACL 問題,所以在主控端我們添加了
dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcAccess olcAccess: {3}to attrs=userPassword by dn.base="cn=syncprov,dc=thedomain,dc=com" read
但 userPass 仍然失去。
要逐步調試,這將很有幫助
- 是否有工具可以幫助我檢查 ACL 問題?所以我可以冒充使用者並檢查屬性?
- 伺服器端的日誌記錄級別會顯示 ACL 問題嗎?
- 每當我們在從屬端嘗試 ldapmodify 更改時,它們都會被“影子上下文”拒絕,這很合乎邏輯,但是我們如何進行更改呢?我們是否必須從複製中排除 cn=config
- 既然從機端的任何更改都被拒絕了,那麼我們如何完全停止複制模式呢?
您現在可以通過使用複制使用者的憑據登錄並確認
userPassword
在查詢其他使用者對象時顯示該憑據來簡單地檢查 ACL 是否正確。例如用一個簡單的
ldapsearch -D "cn=syncprov,dc=thedomain,dc=com" -w secret -p 389 -h server.example.com "cn=Heiner"
如果 ACL 正確,您應該能夠看到 userPassword。
修復 ACL 不會自動開始將缺少的 userPassword 屬性複製到您的從站。
(更改後的 ACL 不會修改原始使用者帳戶對象,儘管 cn=syncprov 現在可以在主伺服器上看到一個額外的屬性,這不是“新”屬性,該帳戶保持不變。而且由於複製只同步具有已更新沒有任何反應。)
您將需要再次完全初始化從站,這次使用userPasswords。