3.2. 架构文件的要求
模式文件使用 LDIF 格式来定义 cn=schema
条目。每个属性类型和对象类添加到此条目中。
以下是模式文件的要求:
该文件必须以以下条目开头:
dn: cn=schema
- 架构文件可以包含属性类型或对象类或两者。
- 对象类定义可以使用其他架构文件中定义的属性。
根据哪些实例应该使用自定义模式文件,将其存储在以下位置之一:
-
/etc/dirsrv/slapd-instance_name/schema/
使 schema 文件可供这个特定实例使用 -
/usr/share/dirsrv/schema/
使 schema 文件可供此主机上运行的所有实例使用
-
默认情况下,Directory 服务器需要
99user.ldif
文件中的自定义模式。如果您使用不同的文件名:-
名称必须按字母顺序低于
99user.ldif
。例如,99aaa.ldif
是 ok,但99zzz.ldif
不是。 名称必须以两个数字开头,且大于
01
,因为自定义模式文件必须在核心架构文件后加载,从00
开始到98
目录服务器以字母顺序读取模式文件。因此,例如,如果您存储了定义
99user.ldif
,它将覆盖名称以00
和01
开头的标准文件中的定义。
-
名称必须按字母顺序低于
-
如果要使用
/usr/share/dirsrv/data/
目录中的标准模式文件,请将文件复制到/etc/dirsrv/slapd-instance_name/schema/
或/usr/share/dirsrv/schema/
,具体取决于哪些实例应使用该文件。但是,在目标目录中使用不同的文件名。否则,Directory 服务器会在升级过程中重命名文件,并附加.bak
后缀。
例 3.1. 自定义模式文件示例
dn: cn=schema objectClasses: ( 2.16.840.1.1133730.2.1.123 NAME 'exampleperson' DESC 'An example person object class' SUP top STRUCTURAL MUST dateOfBirth X-ORIGIN 'user defined' ) attributeTypes: ( 2.16.840.1.1133730.2.1.99 NAME 'dateOfBirth' DESC 'For employee birthday' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )