首页 > 解决方案 > 如何添加到 openLDAP 用户 objectClass

问题描述

我必须在两个 openLDAP 服务器之间克隆数据。我从源代码获取 LDIF,但导入有问题。我有错误 root@dc:/etc/ldap/schema# ldapadd -Y external -H ldapi:/// -f /tmp/export.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=Tomasz Topolski,ou=Pracownicy,dc=tropico,dc=local" ldap_add: Invalid syntax (21) additional info: objectClass: value #3 invalid per syntax

谷歌搜索后,我发现问题出在第 4 个 objectClass 上(因为它从 0 开始计数),所以我检查导出的 ldif 中的第 4 个 objectClass 是 objectClass: user 主要问题是。如何将此 objectClass 添加到我的 LDAP 中?

标签: ldapopenldap

解决方案


如果您正在寻找迁移所有配置,可以使用带有“-n 0”作为参数的 slapcat 来导出所有配置,包括架构。然后,可以先添加架构,然后添加数据。

但是,如果只需要这个特定的对象类“用户”,那么可以按照以下步骤操作

  1. 创建一个文件 user.schema,其内容与源 OPENLDAP 用户对象类定义相同。
  2. 创建 conf 文件 user.conf 包括 ~/user.schema
  3. 创建目录并运行以下命令

    mkdir 用户目录

    slaptest -f user.conf -F userdir

  4. userdir 中的生成文件可用于添加到架构

    服务 slapd 停止

    slapadd -l -n 0

    服务 slapd 启动


推荐阅读