Xupeng's blog

Aug 9, 2009 - 1 minute read - Comments

修改 OpenLDAP 的 base DN

在 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 一下很快就找到了解决方法:

  1. 停止 OpenLDAP 服务器: /etc/init.d/slapd stop
  2. 使用 slapcat 把 LDAP 数据库导出为 ldif: slapcat -l backup-openldap.ldif,这样 LDAP 数据库就被导出到了 backup-openldap.ldif 文件里
  3. 使用 sed 或者别的工具把 backup-openldap.ldif 里的默认的 base DN: dc=nodomain 改成想要的: dc=xupeng,dc=local
  4. /etc/ldap/slapd.conf 里的 base DN 也改掉
  5. 使用 slapadd 把修改过的数据文件重新导入 LDAP 数据库: slapadd -l backup-openldap.ldif
  6. 启动 OpenLDAP 服务,base DN 应该就被修改掉了