在 Debain 里安装 OpenLDAP 时,Debian 会提示给 LDAP 的 admin 用户设置一个密码,然后就自动地创建了一个默认的数据库,这个默认的数据库使用了一个默认的 base DN,默认情况下,Debian 会使用本机的域名来作为 base DN,比如如果我的域名是 xupeng.local,那么 Debian 就会使用 dc=xupeng,dc=local
作为我的默认 base DN,但是很不幸,我没有给我的 Debian 测试机设置域名,于是我的 LDAP 默认数据库的 base DN 就成了 dc=nodomain
,要想修改 base DN 还真不是直接改了配置文件(/etc/ldap/slapd.conf
)就行的,不过 Google 一下很快就找到了解决方法:
- 停止 OpenLDAP 服务器:
/etc/init.d/slapd stop
- 使用
slapcat
把 LDAP 数据库导出为 ldif:slapcat -l backup-openldap.ldif
,这样 LDAP 数据库就被导出到了backup-openldap.ldif
文件里 - 使用 sed 或者别的工具把
backup-openldap.ldif
里的默认的 base DN:dc=nodomain
改成想要的:dc=xupeng,dc=local
- 把
/etc/ldap/slapd.conf
里的 base DN 也改掉 - 使用
slapadd
把修改过的数据文件重新导入 LDAP 数据库:slapadd -l backup-openldap.ldif
- 启动 OpenLDAP 服务,base DN 应该就被修改掉了