第 7 章 管理属性和值


Red Hat Directory Server 为动态和自动维护目录条目上的某些属性提供几种不同的机制。这些插件和配置选项简化了管理目录数据并表达条目之间的关系。
条目特性的一部分是它们相互 的关系。值得注意的是,经理有一个员工,因此这两个条目都相关。组与其成员关联。也有不太明显的关系,如共享一个通用物理位置的条目之间。
Red Hat Directory Server 提供了几种不同方法,这些条目间的关系可以平稳且一致地维护。有几个插件可作为目录中的数据的一部分自动应用或生成属性,包括服务类、链接属性和生成唯一的数字属性值。

7.1. 强制属性唯一性

为确保属性值在目录或子树之间是唯一的,请使用 属性唯一 插件。
如果您希望多个属性是唯一的,或者想要使用不同的条件,请创建插件的多个配置记录。

7.1.1. 创建 属性唯一插件的新配置 记录

对于值必须是唯一的的每个属性,请创建一个 属性插件的 新配置记录。
注意
您只能从命令行创建插件的新配置记录。
为插件创建一个新的未配置和禁用的配置记录,名为 Example Attribute Uniqueness
dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq add "Example" --attr-name uid
Copy to Clipboard Toggle word wrap

7.1.2. 通过后缀或子树配置属性唯一性

您可以配置 属性唯一 插件,以确保属性值在某些后缀、子树或后缀和子树中是唯一的。
要配置,例如,存储在 mail 属性中的值是唯一的:
  1. 属性唯一 插件创建一个新的配置记录,例如,邮件属性唯一性。详情请查看 第 7.1.1 节 “创建 属性唯一插件的新配置 记录”
  2. 启用插件配置记录:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq enable "mail Attribute Uniqueness"
    Copy to Clipboard Toggle word wrap
  3. 配置存储在 邮件 属性中的值必须在内唯一,例如 ou=Engineering,dc=example,dc=comou=sales,dc=example,dc=com 子树:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq set "mail Attribute Uniqueness" --attr-name mail --subtree ou=Engineering,dc=example,dc=com ou=Sales,dc=example,dc=com
    Copy to Clipboard Toggle word wrap
  4. 另外,要选择性地配置此插件配置记录中配置的所有子树的唯一性:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq set "mail Attribute Uniqueness" --across--all-subtrees=on
    Copy to Clipboard Toggle word wrap
  5. 重启实例:
    # dsctl instance_name restart
    Copy to Clipboard Toggle word wrap
要配置,例如,存储在 mail 属性中的值是唯一的:
  1. 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录目录服务器”
  2. 选择实例。
  3. 打开 Plugins 菜单。
  4. 选择 Attribute Uniqueness 插件。
  5. 单击 Add Config
  6. 填写字段并启用配置。例如:

    图 7.1. 添加属性唯一配置

7.1.3. 配置对象类的属性唯一性

您可以配置 Attribute Uniqueness 插件,以确保属性值在包含特定对象类的子树条目中是唯一的。目录服务器在更新对象的父条目中搜索此对象类。如果目录服务器找不到对象类,搜索将继续在目录树的根目录的下一个更高级别的条目中。如果找到对象类,Directory 服务器会验证 uniqueness-attribute-name 中设置的属性值是否在此子树中是唯一的。
要配置,例如,存储在 mail 属性中的值在包含 nsContainer 对象类的条目下是唯一的:
  1. 属性唯一 插件创建一个新的配置记录,例如,邮件属性唯一性。详情请查看 第 7.1.1 节 “创建 属性唯一插件的新配置 记录”
  2. 启用插件配置记录:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq enable "mail Attribute Uniqueness"
    Copy to Clipboard Toggle word wrap
  3. 在包含 nsContainer 对象类的条目下,配置存储在 mail 属性中的值必须是唯一的:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq set "mail Attribute Uniqueness" --top-entry-oc=nsContainer
    Copy to Clipboard Toggle word wrap
  4. 另外,您还可以限制正在检查的对象范围。如果您希望服务器只检查包含 nsContainer 对象类的条目子集,请在 uniqueness-subtree-entries-oc 参数中设置额外的对象类。另外,还需要存在这个其他类。
    例如,mail 属性在包含 nsContainer 对象类集的条目下的所有条目中必须是唯一的。但是,您希望插件只在包含提供此属性的对象类的条目中搜索 邮件,如 inetOrgPerson。在这种情况下,请输入:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin attr-uniq set "mail Attribute Uniqueness" --subtree-entries-oc=inetOrgPerson
    Copy to Clipboard Toggle word wrap
  5. 重启实例:
    # dsctl instance_name restart
    Copy to Clipboard Toggle word wrap

7.1.4. 属性唯一插件配置参数

要配置 属性唯一插件配置 记录,请在 cn=attribute_uniqueness_configuration_record_name,cn=plugins,cn=config 条目中设置插件的配置属性。

例 7.1. 使用特定于插件的属性的属性进行属性插件插件配置

dn: cn=Example Attribute Uniqueness,cn=plugins,cn=config
nsslapd-pluginEnabled: on
uniqueness-attribute-name: attribute_name
uniqueness-top-entry-oc: objectclass1 
uniqueness-subtree-entries-oc: objectclass2
Copy to Clipboard Toggle word wrap
有关您可以配置 属性唯一 插件的参数列表,请查看 Red Hat Directory Server 配置、命令和文件参考 中的相应部分
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat