本部分介绍如何通过 LDAP 创建、查看和删除属性类型。
cn=schema 条目具有多值属性 attributeTypes,该属性包含目录模式中每个属性类型的定义。可以使用 ldapmodify(1) 命令添加这些定义。
新的属性类型定义以及您对用户定义的属性类型所做的更改都保存在 99user.ldif 文件中。
对于每个属性类型定义,至少要提供一个 OID 以定义新的属性类型。请考虑至少为新属性类型使用以下元素:
属性 OID。 与属性的对象标识符相对应。OID 是一个字符串,通常是点分十进制数字,可以唯一地标识模式对象。
为了严格遵循 LDAP v3,您必须提供有效的数字 OID。要了解 OID 的详细信息,或者为您的企业请求前缀,请向互联网号码分配机构 (Internet Assigned Number Authority, IANA) 发送电子邮件(地址为 iana@iana.org),或访问 IANA Web 站点。
属性名称。与属性的唯一名称相对应。也称为其属性类型。属性名称必须以字母开头,并且只能包含 ASCII 字母、数字和连字符。
属性名称可以包含大写字母,但任何 LDAP 客户端都不会根据大小写来区分属性。根据 RFC 4512 的 2.5 节,必须以不区分大小写的方式处理属性名称。
您可以选择为属性类型添加备用属性名称(也称为别名)。
属性描述。用于介绍属性用途的简短描述性文本。
语法。由 OID 引用,用于描述属性将包含的数据。
RFC 4517 中列出了属性语法及其 OID。
允许的值数。默认情况下属性可以具有多个值,但您可能希望将属性限制为单值属性。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
根据 RFC 4517 中指定的语法准备属性类型定义。
使用 ldapmodify(1) 命令添加属性类型定义。
请注意,目录服务器会将 X-ORIGIN 'user defined' 添加到您提供的定义中。
以下示例将使用 ldapmodify 命令添加具有目录字符串语法的新属性类型:
$ cat blogURL.ldif dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( 1.2.3.4.5.6.7 NAME ( 'blog' 'blogURL' ) DESC 'URL to a personal weblog' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) $ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -f blogURL.ldif Enter bind password: modifying entry cn=schema $ |
在生产环境中,应该提供一个唯一的有效 OID,而不是 1.2.3.4.5.6.7。
cn=schema 条目具有多值属性 attributeTypes,该属性包含目录模式中每个属性类型的定义。可以使用 ldapsearch(1) 命令读取这些定义。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
以下命令显示所有属性类型的定义:
$ ldapsearch -T -b cn=schema "(objectclass=*)" attributeTypes |
-T 选项可阻止 ldapsearch 命令折叠 LDIF 行,以便您更容易地使用 grep 或 sed 等命令处理输出。这样,如果您通过 grep 命令输送此命令的输出,则可以只查看目录模式中用户定义的扩展部分。例如:
$ ldapsearch -T -b cn=schema "(objectclass=*)" attributeTypes | grep "user defined" attributeTypes: ( 1.2.3.4.5.6.7 NAME ( 'blog' 'blogURL' ) DESC 'URL to a personal weblog' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' ) |
cn=schema 条目具有多值属性 attributeTypes,该属性包含目录模式中每个属性类型的定义。可以使用 ldapmodify(1) 命令删除具有 X-ORIGIN 'user defined' 的定义。
由于模式是由 LDAP 视图在 cn=schema 中定义的,因此您可以使用 ldapsearch 和 ldapmodify 实用程序联机查看和修改模式。但是,您只能删除 X-ORIGIN 字段值为 'user defined' 的模式元素。服务器不会删除其他定义。
对用户定义属性所做的更改将保存在 99user.ldif 文件中。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
查看要删除的属性类型的定义。
有关详细信息,请参见查看属性类型。
使用 ldapmodify(1) 命令删除模式中出现的属性类型定义。
以下命令将删除在示例 12–1中创建的属性类型:
$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: cn=schema changetype: delete delete: attributeTypes attributeTypes: ( 1.2.3.4.5.6.7 NAME ( 'blog' 'blogURL' ) DESC 'URL to a personal weblog' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' ) ^D |
请注意,必须包括由目录服务器添加的 X-ORIGIN 'user defined'(用于将此模式定义归类为扩展)。