Ldap
更改儲存 LDAP 數據的位置
我在 CentOS 7 上執行 openLDAP 伺服器版本 2.4.40。LDAP 將使用線上配置選項 (olc) 進行配置。感謝這個問題,我知道 slapd 的數據庫文件在
/var/lib/ldap
.我正在嘗試在 linux 機器上執行一個 openLDAP 伺服器作為只讀作業系統分區和另一個用於持久數據的分區。我將能夠在 OS 分區上安裝和配置 openLDAP,但在配置後將無法訪問它。
**問題:*是否可以將 LDAP 讀取/寫入數據的位置從/var/lib/ldap*更改到持久數據分區上的某個位置?
我曾經在每次新設置後移動 openldap 的預設數據庫。
我想移動數據庫時執行的步驟:
- 停止
slapd
sudo service slapd stop
slapcat``cn=config
LDIF 文件中分支的內容sudo slapcat -b cn=config > /tmp/config.ldif
- 將
/var/lib/ldap
目錄複製到您想要的任何位置- 確保使用者
openldap
擁有新目錄和其中的所有文件- 編輯之前導出的 LDIF 以將其修改
olcDbDirectory
為新位置- 導入 LDIF(在執行此操作之前確保 LDIF
/etc/ldap/slapd.d
為空)sudo rm -r /etc/ldap/slapd.d/* sudo slapadd -F /etc/ldap/slapd.d -b cn=config -l /tmp/config.ldif
- 確保其
/etc/ldap/slapd.d
及其所有內容歸openldap
sudo chown -R openldap:openldap /etc/ldap/slapd.d/
- 編輯所需的配置以允許 Slapd 使用這個新的數據庫目錄
例如,使用
apparmor
編輯文件/etc/apparmor.d/usr.sbin.slapd
並添加以下行:/path/to/new/db/ r, /path/to/new/db/** rwk,
- 重啟apparmor和slapd
sudo service apparmor restart sudo service slapd start
通常它可以解決問題。這也是我備份我的 openldap 實例配置的方式。