ldap - 如何添加到 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 中?
解决方案
如果您正在寻找迁移所有配置,可以使用带有“-n 0”作为参数的 slapcat 来导出所有配置,包括架构。然后,可以先添加架构,然后添加数据。
但是,如果只需要这个特定的对象类“用户”,那么可以按照以下步骤操作
- 创建一个文件 user.schema,其内容与源 OPENLDAP 用户对象类定义相同。
- 创建 conf 文件 user.conf 包括 ~/user.schema
创建目录并运行以下命令
mkdir 用户目录
slaptest -f user.conf -F userdir
userdir 中的生成文件可用于添加到架构
服务 slapd 停止
slapadd -l -n 0
服务 slapd 启动
推荐阅读
- c# - 如何在 Xamarin.IOS 中实现进程间通信 (IPC)
- laravel - 渴望加载分页
- php - 使用木材在“发布”数组中未设置的问题
- perl - Perl:为什么不能除法?
- jquery - 如何在查找字段中设置值
- android - 默认情况下,LinearLayout 内的 ImageView 在侧面有边距
- android - 在 EditText 字段中键入时,“完成”按钮不再可见
- internet-explorer - 由于参数中的分号,来自 Microsoft Edge 和 IE 的 S3 PUT 请求失败
- android - 未在 Android 8 和 9 上授予可选的危险权限 READ_PHONE_STATE?
- java - 用于 RelativeLayout 的 Android 多点触控 lisiner