12.9. 创建自定义架构文件


模式文件是简单的 LDIF 文件,用于定义 cn=schema 条目。每个属性和对象类都作为属性添加到该条目。以下是创建模式文件的要求:
  • 第一行必须是 dn: cn=schema
  • 架构文件可以包含属性和对象类,但它只能包含一个或多个类。
  • 如果属性和对象类都以样式定义,则该文件中必须列出所有属性,然后是对象类。
  • 对象类可以使用其他架构文件中定义的属性。
  • 该文件必须以 [1-9][0-9]text.ldif 格式命名。
    文件必须始终以两个数字开头。在数字上,在核心配置架构之前无法加载架构文件(以 0001开始)。
    另外,Directory 服务器总是将其自定义模式写入数字,并按字母顺序将命名模式文件写入 schema 目录中。它要求此文件为 99user.ldif。如果此文件不是 99user.ldif,则服务器可能会遇到问题。因此,始终确保自定义模式文件至少小于 99user.ldif。名称 99alpha.ldif 为 okay;名称 99zzz.ldif 不在。
部署指南 中更详细地介绍了创建模式文件的实践。
在 schema 文件中将属性定义为 schema 的 attributetypes 属性,包含五个组件:
例如:
attributetypes: ( 1.2.3.4.5.6.1 NAME 'dateofbirth' DESC 'For employee birthdays' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUED X-ORIGIN 'Example defined')
Copy to Clipboard Toggle word wrap
同样,对象类被定义为 objectclasses 属性的值,虽然定义对象类的方式稍有更大的灵活性。唯一需要的配置是对象类的名称和 OID;所有其他配置都取决于对象类的要求:
  • OID,通常是以点分开的数字
  • 唯一名称,格式为 NAME name
  • 描述,格式为 DESC 描述
  • 此对象类的 superior 或 parent 对象类,格式为 SUP object_class ;如果没有相关的父对象,请使用 SUP 顶部
  • AUXILIARY 一词提供对象类应用到的条目类型; AUXILIARY 表示它可以应用到任何条目
  • 必要属性的列表,前面带有单词 MUST; 包括多个属性,将组用括号括起,用美元符号($)分隔属性。
  • 允许的属性列表,前面带有 MAY 一词;要包含多个属性,将组用括号括起,并且使用 $ 符号($)分隔属性。
例如:
objectclasses: ( 2.16.840.1133730.2.123 NAME 'examplePerson' DESC 'Example Person Object Class' SUP inetOrgPerson AUXILIARY  MUST cn MAY (exampleDateOfBirth $ examplePreferredOS) )
Copy to Clipboard Toggle word wrap
例 12.4 “架构文件示例” 显示简化的模式文件。

例 12.4. 架构文件示例

dn: cn=schema
attributetypes: ( 2.16.840.1133730.1.123 NAME 'dateofbirth' DESC 'For employee birthdays' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Example defined')
objectclasses: ( 2.16.840.1133730.2.123 NAME 'examplePerson' DESC 'Example Person Object Class' SUP inetOrgPerson AUXILIARY MAY (dateofbirth) )
Copy to Clipboard Toggle word wrap
自定义架构文件应添加到 Directory Server 实例的 schema 目录中,/etc/dirsrv/slapd-instance/schema。除非服务器重启或动态重新加载任务运行,否则这些文件中的 schema 不会被加载且可供服务器使用。
重要
如果要使用 /usr/share/data/ 目录中的标准模式,请将 schema 文件复制到 /usr/share/dirsrv/schema/ 目录中。如果您需要标准模式仅适用于特定实例,请将 schema 文件复制到 /etc/dirsrv/slapd-instance_name/schema/ 目录中,但在目标目录中使用不同的文件名。否则,Directory 服务器在升级过程中重命名文件,并附加 .bak 后缀。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat