openldap 迁移 - slapd 无法启动“olcDbDirectory:值 #0:无效路径:权限被拒绝”

openldap 迁移 - slapd 无法启动“olcDbDirectory:值 #0:无效路径:权限被拒绝”

我已将旧slapd数据库迁移到新服务器,以下是我采取的步骤:

  1. 在旧服务器运行:

    slapcat -n 0 -l config.ldif
    
    slapcat -n 2 -l data.ldif
    

    我必须跑,slapcat -n 2因为-n 1我得到了slapcat: database doesn't support necessary operations.

  2. 将两个 ldif 文件复制到新服务器

  3. 安装openldap

    yum install -y openldap openldap-servers openldap-clients
    
  4. 编辑config.ldif并更改行

    dn: olcDatabase={2}bdb,cn=config
    olcDatabase: {2}bdb
    

    成为

    dn: olcDatabase={1}bdb,cn=config
    olcDatabase: {1}bdb
    
  5. slapadd对两个 ldif 文件运行:

    slapadd -c -F /etc/openldap/slapd.d -n 0 -l config.ldif
    

    olcOverlay第一次出现此错误时我收到不允许的错误,因此我删除了该config.ldif文件的行,然后它就正常工作了。

    slapadd -c -F /etc/openldap/slapd.d -n 1 -l data.ldif
    

    这似乎工作正常。

  6. 开始slapd。这就是我的问题所在,slapd无法启动,并且出现错误:

    olcDbDirectory: value #0: invalid path: Permission denied
    config error processing olcDatabase={1}bdb,cn=config: olcDbDirectory: value #0: invalid path: Permission denied
    

    我的文件olcDbDirectory中的config.ldif设置为/usr/local/openldap/ldap,并且该文件夹存在并归所有ldap:ldap,我甚至尝试授予它777权限,但仍然收到此错误。

我希望slapd能开始。如果有人能给我任何帮助,那就太好了,无论是我可能错过的步骤还是我应该做什么来解决这个错误。

答案1

当你导入时config.ldifslapadd不会覆盖 yum 安装部署的现有内容。要正确导入配置,你必须先删除当前配置:

rm -r /etc/openldap/slapd.d/cn=config*
sudo -u ldap slapadd -F /etc/openldap/slapd.d -n0 -l config.ldif

(如果您slapadd以 root 身份运行,那么您应该chown -R ldap:ldap /etc/openldap/slapd.d随后sudo -u ldap避免这样做。)

如果你做对了所有事情,slapadd就会成功没有需要-c

相关内容