搜索

1.4. 重命名和移动 LDAP 条目

download PDF
The following rename operations exist:
重命名条目

如果您重命名条目,modrdn 操作会更改条目的相对可分辨名称(RDN):

modrdn leaf
重命名子条目

对于子树条目,modrdn 操作重命名子树以及子条目的 DN 组件:

modrdn 子树

请注意,对于大型子树,这个过程可能需要大量时间和资源。

将条目移到新父项

重命名子树的类似操作是将条目从一个子树移到另一个子树。这是展开的 modrdn 操作类型,它同时重命名条目并设置 newSuperior 属性,该属性将条目从一个父项移到另一个父属性:

modrdn newsuperior

1.4.1. 重命名 LDAP 条目的注意事项

在执行重命名操作时请注意以下几点:

  • 您不能重命名 root 后缀。
  • 子树重命名操作对复制具有最小效果。复制协议应用于整个数据库,不适用于数据库内的子树。因此,子树重命名操作不需要重新配置复制协议。子树重命名操作之后的所有名称都会正常进行复制。
  • 重命名子树可能需要重新配置任何同步协议。同步协议在后缀或子树级别上设置。因此,重命名子树可能会破坏同步。
  • 重命名子树要求手动为子树设置的任何子树级访问控制指令(ACI),以及为子树的子条目设置的任何条目级 ACI。
  • 尝试更改子树的组件,如从 ou 移到 dc,可能会因为 schema 违反而失败。例如,organizationalUnit 对象类需要 ou 属性。如果该属性作为重命名子树的一部分被删除,则操作会失败。
  • 如果您移动组,MemberOf 插件会自动更新 memberOf 属性。但是,如果您移动包含组的子树,您必须在 cn=memberof 任务条目中手动创建任务,或使用 dsconf memberof fixup 命令来更新相关的 memberOf 属性。

1.4.2. 控制重命名条目时的相对可分辨名称行为

当您重命名条目时,deleteOldRDN 属性控制是否删除或保留旧的相对可分辨名称(RDN):

deleteOldRDN: 0

现有 RDN 保留为新条目中的值。生成的条目包含两个 cn 属性:一个带有旧属性,另一个带有新的通用名称(CN)。

例如,以下属性属于从 cn=old_group,dc=example,dc=com 重命名为 cn=new_group,dc=example,dc=com 的组,并将 deleteOldRDN 属性设置为 0

dn: cn=new_group,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: old_group
cn: new_group
deleteOldRDN: 1

目录服务器删除旧条目,并使用新的 RDN 创建新条目。新条目仅包含新条目的 cn 属性。

例如,以下组被重命名为 cn=new_group,dc=example,dc=com,并将 deleteOldRDN 属性设置为 1:

dn: cn=new_group,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupofuniquenames
cn: new_group

1.4.3. 重命名 LDAP 条目或子树

要重命名条目或子树,请使用 changetype: modrdn 操作,并在 newrdn 属性中设置新的相对可分辨名称(RDN)。

例如,要将 cn=demo1,dc=example,dc=com 条目重命名为 cn=demo2,dc=example,dc=com,请输入:

# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x

dn: cn=demo1,dc=example,dc=com
changetype: modrdn
newrdn: cn=demo2
deleteOldRDN: 1

1.4.4. 将 LDAP 条目移到新父项

要将条目移到新父项,请使用 changetype: modrdn 操作,并将以下内容设置为属性:

  • newrdn :设置移动条目的相对可分辨名称(RDN)。您必须设置此条目,即使 RDN 保持不变。
  • newsuperior :设置新 父条目的可分辨名称(DN)。

例如,要将 cn=demo 条目从 ou=Germany,dc=example,dc=com 移到 ou=France,dc=example,dc=com,请输入:

# ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x

dn: cn=demo,ou=Germany,dc=example,dc=com
changetype: modrdn
newrdn: cn=demo
newSuperior: ou=France,dc=example,dc=com
deleteOldRDN: 1
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.