[華語, cmn-Hant-TW]
在設定 openldap 的時候,通常會用 bdb 這個 backend,不過既然官方都說這個要退休了那當然得改用別的方案,雖然說是建議用 mdb,不過因為偷懶就用 ldif 試看看,一開始用覺得還 OK,結果發現權限上面居然有神奇的狀況,大部份的權限都沒問題,但是 add 跟 delete 似乎只要 auth 過就能執行,完全無視權限設定,查了一堆資料試了半天改了一堆設定都還是能執行,唯一擋得住的方式就是讓人不能登入,啊不能登入就跟不能用是一樣的意思了,所以這條路卡關,就改來試 mdb 看情況如何。
結果還不錯,其實直接跳 mdb 還算蠻無痛的,資料庫檔案也只剩 data.mdb 跟 lock.mdb 兩個,看起來很清爽,至於效能部份因為這台的資料量還沒多到需要擔心的程度,就沒特別去比較了。
mdb 沒遇到 add 跟 delete 權限問題,但是遇到一個奇怪的狀況,在 LDAP Admin 這套軟體下會看到不斷跳針的無窮迴圈項目,而且一按刪除,程式就當掉,不過在 LAM 下倒是沒啥問題,找了一下 LDAP Admin 的討論區,在這篇提到這可能是 OpenLDAP 處理 paged results 的方式造成的,而 LDAP Admin 新增連線的時候 paged search 預設是開啟,所以就踩到了這個地雷。解決方式也很簡單,只要關掉 paged search 之後連該台 ldap 伺服器就一切正常了。
另外有試了一下從 OpenLDAP 的 git 抓了最新的 code 重新編譯 mdb 的部份,情況一樣,所以這個選項還是乖乖關掉比較好。