上一页      目录      索引      文档主页      下一页     
iPlanet Directory Server 5.1 管理员指南



第 2 章 创建目录项


本章介绍如何使用 iPlanet Directory Server 和 ldapmodifyldapdelete 命令行实用程序来修改目录内容。

在目录部署的规划阶段,就应明确目录所要包含的数据类型特征。创建条目及修改默认模式前,应仔细阅读 iPlanet Directory Server 部署指南

本章包括以下几节:



从目录控制台管理条目

您可以使用 iPlanet Directory Server Console 上的“目录”选项卡和属性编辑器来分别添加、修改或删除各个条目。

有关启动 iPlanet Directory Server Console 和浏览用户界面的详细信息,请参阅第 26 页上的“使用 iPlanet Directory Server Console”

如果希望同时添加多个条目,可以使用“从命令行管理条目”中所述的命令行实用程序。

本节提供下列信息:

本节假定您已具备有关对象类和属性的基本知识。有关对象类和属性的说明,请参阅 iPlanet Directory Server 部署指南。有关定义及使用 iPlanet 服务器产品随带的所有模式的用法信息,请参阅 iPlanet Directory Server 模式参考指南



注意 除非已设置相应的访问控制规则,否则将无法修改目录。有关创建目录之访问控制规则的信息,请参阅第 6 章“管理访问控制”




创建根条目

每次创建新数据库时,其关联的后缀都将存储到数据库中。代表该后缀的目录项并不是自动创建的。

要创建数据库的根条目:

  1. 在 iPlanet Directory Server Console 上,选择“配置”选项卡。

  2. 按照第 83 页上的“创建和维护数据库”中所述,创建新的数据库。

  3. 在“目录”选项卡上,右键单击代表目录服务器的顶端对象,然后选择“新根对象”。

    “新根对象”下的二级菜单中将显示没有相应条目的后缀列表。

  4. 选择对应所要创建的条目的后缀。

    此时显示“新对象”窗口。

  5. 在“新对象”窗口中,选择对应于新条目的对象类。

    所选的对象类中必须包含用于命名后缀的属性。例如,如果是创建对应于后缀 ou=people,dc=siroe,dc=com 的条目,则可以选择 organizationalUnit 对象类(或其它允许使用 ou 属性的对象类)。

  6. 单击“新对象”窗口中的“确定”。

    此时显示新条目的属性编辑器。单击“确定”可接受当前值,也可以按“修改目录项”中的说明对该条目进行修改。


创建目录项

iPlanet Directory Server Console 提供了几种预定义的模板,可用于创建目录项。下列类型的条目具有可用的模板:

  • 用户

  • 组织单元

  • 角色

  • 服务类

表 2-1 显示每个模板所用对象类的类型。


表 2-1    条目模板及对应的对象类

模板

对象类

用户  

inetOrgPerson  

 

groupOfUniqueNames  

组织单元  

organizationalUnit  

角色  

nsRoleDefinition  

服务类  

cosSuperDefinition  

这些模板中包含的字段分别代表着所有必选属性及部分常用的可选属性。要使用其中的某个模板来创建条目,请参阅“使用预定义模板创建条目”。要创建其它类型的条目,请参阅“创建其它类型的条目”


使用预定义模板创建条目

  1. 在 iPlanet Directory Server Console 中,选择“目录”选项卡。

  2. 在左侧窗口中,右键单击要在下面添加新条目的条目,然后选择相应的条目类型:用户、组、组织单元、角色、服务类或其它。

    此时显示相应的创建窗口。

  3. 为所有必选属性(以星号标识)提供相应的值。必要时,还可为可选属性提供值。

    “创建”窗口并不为所有可选属性都提供字段。

  4. 要显示属性的完整列表,请单击“高级”按钮。

    此时显示“属性编辑器”。有关使用属性编辑器的信息,请参阅“修改目录项”

  5. 单击“确定”以关闭“创建”窗口。

    新的条目随即显示在右侧窗口中。


创建其它类型的条目

  1. 在 iPlanet Directory Server Console 中,选择“目录”选项卡。

  2. 在左侧窗口中,右键单击要在下面添加新条目的条目,然后选择“其它”。

    此时显示“新对象”窗口。

  3. 在对象类列表中,选择定义新条目的对象类。

  4. 单击“确定”。

    如果选择的对象类所关联的条目类型具有可用的预定义模板,则显示相应的创建窗口。(请参阅“使用预定义模板创建条目”)。

    其它情况下将显示“属性编辑器”窗口。窗口中包含必选属性的列表。

  5. 为所列的属性提供相应的值。

    注意,有些字段为空,但有些却可能有通用的占位符(例如 New)。对于后者,应替换为该条目有意义的值。

    有些对象类可以有几个命名属性。记住:应选择要用于命名新条目的命名属性。

    要为未列出的可选属性提供值,请参阅“修改目录项”

  6. 单击“确定”以保存新条目并关闭“属性编辑器”窗口。

    新的条目随即显示在右侧窗口中。


修改目录项

要从 iPlanet Directory Server Console 修改目录项,则必须启动属性编辑器。属性编辑器中包含属于该条目的对象类和属性列表。

在属性编辑器中,您可以:

  • 向条目中添加对象类

  • 删除条目中的对象类

  • 向条目中添加属性

  • 向条目中添加属性值

  • 删除条目中的属性值

  • 向条目中添加属性子类型

本节将介绍如何启动属性编辑器,以及如何使用属性编辑器来修改条目的属性和属性值。


显示属性编辑器

启动属性编辑器的方法有多种:

  • 在“目录”选项卡中,右键单击左侧或右侧窗口中的条目,然后从弹出菜单中选择“属性”。

  • 在“目录”选项卡中,双击左侧或右侧窗口中的条目。

  • 在“创建用户”、“创建组”、“创建组织单元”、“创建角色”和“创建服务类”模板中,单击“高级”按钮(请参阅“使用预定义模板创建条目”)。

  • 在“新对象”窗口中,单击“确定”(请参阅“创建其它类型的条目”)。

有关“属性编辑器”窗口的图示见图 2-1,其中包括一个说明空间关系的条目示例。

图 2-1    iPlanet Directory Server Console - 属性编辑器



向条目中添加对象类

要向条目中添加对象类:

  1. 在 iPlanet Directory Server Console 的“目录”选项卡中,右键单击所要修改的条目,然后从弹出菜单中选择“属性”。

    也可以双击该条目。此时显示“属性编辑器”。

  2. 选择对象类字段,然后单击“添加值”。

    此时显示“添加对象类”窗口。窗口中将显示可以向条目中添加的对象类列表。

  3. 选择要添加的对象类,然后单击“确定”。

    所选的对象类将出现在属性编辑器的对象类列表中。要关闭“添加对象类”窗口,请单击“取消”。

  4. 编辑完条目后,单击属性编辑器中的“确定”。

    此时将关闭“属性编辑器”。


删除对象类

要删除条目中的对象类:

  1. 在 iPlanet Directory Server Console 的“目录”选项卡中,右键单击所要修改的条目,然后从弹出菜单中选择“属性”。

    也可以双击该条目。此时显示“属性编辑器”。

  2. 对于显示所要删除的对象类的文本框,单击其中的光标,然后单击“删除值”。

  3. 编辑完条目后,单击属性编辑器中的“确定”。

    此时将关闭“属性编辑器”。


向条目中添加属性

向条目中添加属性之前,条目中必须包含要求或允许使用该属性的对象类。有关详细信息,请参阅“向条目中添加对象类”第 9 章“扩展目录模式”

要向条目中添加属性:

  1. 在 iPlanet Directory Server Console 的“目录”选项卡中,右键单击所要修改的条目,然后从弹出菜单中选择“属性”。

    也可以双击该条目。此时显示“属性编辑器”。

  2. 单击“添加属性”。

    此时显示“添加属性”对话框。

  3. 从列表中选择所需的属性,然后单击“确定”。

    此时将关闭“添加属性”对话框,而所选的属性将出现在属性编辑器的属性列表中。

  4. 在属性名右侧的文本框中键入新属性的值。

  5. 编辑完条目后,单击属性编辑器中的“确定”。

    此时将关闭“属性编辑器”。


添加属性值

如果条目中包含多值属性,即可为这些属性提供多个值。

要为多值属性提供属性值:

  1. 在 iPlanet Directory Server Console 的“目录”选项卡中,右键单击所要修改的条目,然后从弹出菜单中选择“属性”。

    也可以双击该条目。此时显示“属性编辑器”。

  2. 选择要添加值的属性,然后单击“添加值”。

    新的空白文本字段将显示在右侧栏中。

  3. 键入新属性值的名称。

  4. 编辑完条目后,单击属性编辑器中的“确定”。

    此时将关闭“属性编辑器”。


删除属性值

要删除条目中的属性值:

  1. 在 iPlanet Directory Server Console 的“目录”选项卡中,右键单击所要修改的条目,然后从弹出菜单中选择“属性”。

    也可以双击该条目。此时显示“属性编辑器”。

  2. 对于包含要删除属性值的文本框,单击其中的光标,然后单击“删除值”。

    如果想从条目中删除整个属性及其全部值,请选择“编辑”菜单中的“删除属性”。

  3. 编辑完条目后,单击属性编辑器中的“确定”。

    此时将关闭“属性编辑器”。


添加属性子类型

对于条目中包含的属性而言,可以添加三种不同的子类型:语言、二进制及发音。


语言子类型
有时,用非默认语言的字符来表示用户名会更为准确。例如,Noriko 的名字为日语,她喜欢自己的名字尽可能用日语字符表示。您可以选择日语作为 givenname 属性的语言子类型,这样其它用户即可搜索其日语名字。

如果为某个属性指定语言子类型,则该子类型将按下列方式添加到属性名中:

attribute;lang-subtype

其中 attribute 是要添加到条目中的属性,而 subtype 则是两个字符的语种缩写。有关受支持的语言子类型列表,请参阅第 523 页上的表 D-2。例如:

givenname;lang-ja

对于条目中的每个属性实例,只能为它分配一个语言子类型。要分配多个语言子类型,请向条目中添加另一个属性实例,然后分配新的语言子类型。例如,下列子类型非法:

cn;lang-ja;lang-en-GB:Smith

请使用:

cn: lang-ja: ja_value
cn: lang-en-GB: en-GB_value


二进制子类型
为属性分配二进制子类型,指示属性值为二进制值。例如 usercertificate;binary

尽管可以将二进制数据存储到不包含二进制子类型的属性中(例如 jpegphoto),但二进制子类型会向客户机指示:该属性类型可能存在多个变体。


发音子类型
为属性分配发音子类型,指示属性值为音标。该子类型将按下列方式添加到属性中:attribute;phonetic

对于有多个字母表,而其中一个为音标表示的语言而言,该子类型常与语言子类型组合使用。

您可以将其与预计包含用户名的属性(如 cngivenname)配合使用。例如,givenname;lang-ja;phonetic 指示属性值为条目之日语名的音标。


要使用属性编辑器添加子类型:

  1. 在 iPlanet Directory Server Console 的“目录”选项卡中,右键单击所要修改的条目,然后从弹出菜单中选择“属性”。

    也可以双击该条目。此时显示“属性编辑器”。

  2. 单击“添加属性”。

    此时显示“添加属性”对话框。

  3. 从列表中选择所需的属性。

  4. 要为属性分配语言子类型,请从“语言”下拉列表中选择该子类型。

  5. 从“子类型”下拉列表中,也可以分配其它两种子类型之一:二进制或发音。

  6. 单击“确定”。

    此时显示“添加属性”窗口。

  7. 定义完条目的信息后,单击属性编辑器中的“确定”。


删除目录项

要使用 iPlanet Directory Server Console 删除条目:

  1. 在 iPlanet Directory Server Console 中,选择“目录”选项卡。

  2. 右键单击导航窗口或右侧窗口中所要删除的条目,然后从弹出菜单中选择“删除”。

    要选择多个条目,请在按住 Ctrl 或 Shift 的同时单击所需条目,然后选择“编辑”菜单中的“删除”。

    服务器将立即删除所选的条目。该操作无法撤消。



从命令行管理条目

命令行实用程序可用于管理目录的内容。如果想编写脚本以实现目录的批管理,或者想测试 iPlanet Directory Server,即可使用命令行实用程序。例如,在更改访问控制信息后,您可能想确保它返回所期望的信息。

利用命令行实用程序,即可直接从命令行或通过 LDIF 中的输入文件获取相关的信息。

本节提供下列信息:


从命令行提供输入

从命令行直接为 ldapmodifyldapdelete 实用程序提供输入信息时,必须使用 LDIF 语句。有关 LDIF 语句的详细信息,请参阅“LDIF 更新语句”

ldapmodifyldapdelete 实用程序将读取所输入的语句,其方式与从文件中读取完全相同。提供完输入信息后,输入可被 shell 识别为“文件结束”(EOF) 转义序列的字符。实用程序随即根据所提供的输入内容开始操作。

一般情况下,EOF 转义序列为 control-D (^D)。例如,假设想向 ldapmodify 中输入一些 LDIF 更新语句。随后,您应执行以下操作:

prompt> ldapmodify -D bindDN -w password -h hostname
> dn: cn=Barry Nixon, ou=people, dc=siroe,dc=com
> changetype: modify> delete: telephonenumber

> -
> add: manager> manager: cn=Harry Cruise, ou=people, dc=siroe,dc=com
> ^D

prompt>

从命令行或从 LDIF 中添加条目时,确保已创建代表子树的条目,之后才能在此分支下创建新条目。例如,如果想将某个条目放到 People 子树中,则应创建代表该子树的条目,然后再在该子树中创建条目。

例如:

dn: dc=siroe,dc=com
dn: ou=People, dc=siroe,dc=com
...
People subtree entries.
...
dn: ou=Group, dc=siroe,dc=com
...
Group subtree entries.
...


从命令行创建根条目

您可以使用 ldapmodify 命令行实用程序在数据库中创建新的根条目。例如,可以按如下所示添加新的根条目:

prompt% ldapmodify -a -D "dn=directory manager" -w secret

ldapmodify 实用程序将绑定到服务器上并准备添加条目。

如下所示,创建新的根对象:

dn: Suffix_Name
objectclass: newobjectclass

DN 对应数据库所含的根后缀或子后缀的 DN。newobjectclass 值与要向数据库中添加的对象类的类型有关。根据添加的根对象,有时需要指定其它必选属性。



注意 只有在每个后缀都有一个数据库的情况下,才能使用该方法。如果创建的后缀存储在多个数据库中,则必须将 ldif2db 实用程序与 -n 选项配合使用,从而指定用于容纳此新条目的数据库。有关信息,请参阅第 139 页上的“从命令行导入”




使用 LDIF 添加条目使用 LDIF 文件可以添加

多个条目或导入整个数据库。要使用 LDIF 文件及 iPlanet Directory Server Console 添加条目:

  1. 在 LDIF 文件中定义条目。

    LDIF 的说明见附录 A“LDAP 数据交换格式”

  2. 从 iPlanet Directory Server Console 中导入 LDIF 文件。

    有关信息,请参阅第 137 页上的“从控制台执行导入”。导入 LDIF 文件时,选择“导入”对话框中的“附加数据到数据库”,从而使服务器仅导入目录中当前并不存在的条目。

ldapmodify 命令与 -f 选项配合使用,也可从命令行中添加 LDIF 文件中所描述的条目。


使用 ldapmodify 添加和修改条目

使用 ldapmodify 命令可以添加条目及修改现有 iPlanet Directory Server 数据库中的条目。 ldapmodify 命令将利用所提供的特异名称和口令打开到特定服务器的连接,然后根据指定文件中的 LDIF 更新语句对条目进行修改。由于 ldapmodify 使用的是 LDIF 更新语句,因此 ldapmodify 可以执行 ldapdelete 所能执行的任何操作。

使用该实用程序时,如果已打开模式检查功能,服务器就会在条目发生更改时对整个条目执行模式检查:

  • 如果服务器检测到条目中有服务器未知的属性或对象类,则达到有错误的条目时,修改操作即告失败。在遇到错误前所处理的所有条目都已予以成功添加或修改。如果运行 ldapmodify 时使用 -c 选项(出错时不停止),则在错误条目后所处理的所有正确条目都将予以成功添加或修改。

  • 如果所需的属性不存在,修改操作即告失败。即使未修改有冲突的对象类或属性,也会出现这种情况。如果运行 iPlanet Directory Server 时关闭了模式检查功能,然后添加未知的对象类或属性,且之后打开了模式检查功能,就会出现上述情况。

有关详细信息,请参阅第 344 页上的“打开和关闭模式检查”

要利用 ldapmodify 创建数据库后缀(例如 dc=siroe,dc=com),则必须作为目录管理员绑定到目录上。


使用 ldapmodify 添加条目

下面是有关如何使用 ldapmodify 实用程序来向目录中添加条目的典型示例。假定:

  • 希望创建文件 new.ldif 中所指定的条目。

  • 已创建数据库管理员。他有权修改条目,且特异名称为 cn=Directory Manager, dc=siroe,dc=com

  • 数据库管理员的口令为 King-Pin

  • 服务器位于 cyclops 处。

  • 服务器使用端口号 845

本例中,new.ldif 文件中的 LDIF 语句并不指定更改类型。它们遵从第 481 页上的“LDIF 文件格式”中所定义的格式。

要添加条目,则必须输入下列命令:

ldapmodify -a -D "cn=Directory Manager,dc=siroe,dc=com" -w King-Pin -h cyclops -p 845 -f new.ldif


使用 ldapmodify 修改条目

下面是有关如何使用 ldapmodify 实用程序来修改目录项的典型示例。假定:

  • 想修改文件 modify_statements 中指定的条目。

  • 已创建数据库管理员。他有权修改条目,且特异名称为 cn=Directory Manager, dc=siroe,dc=com

  • 数据库管理员的口令为 King-Pin

  • 服务器位于 cyclops 处。

  • 服务器使用端口号 845

要修改条目,则必须首先利用相应的 LDIF 更新语句来创建 modify_statements 文件,然后输入下列命令:

ldapmodify -D "cn=Directory Manager,dc=siroe,dc=com" -w King-Pin -h cyclops -p 845 -f modify_statements


使用 ldapdelete 删除条目

使用 ldapdelete 命令行实用程序可以删除目录中的条目。该实用程序将利用所提供的特异名称和口令打开到指定服务器的连接,然后删除条目。

您只能删除分支末尾的条目。但不能删除作为目录树分支点的条目。

例如,对于下面三个条目而言:

ou=People,dc=siroe,dc=com
cn=Paula Simon,ou=People,dc=siroe,dc=com
cn=Jerry O'Connor,ou=People,dc=siroe,dc=com

只能删除最后两个条目。标识 People 子树的条目只有在下面无任何条目的情况下才能予以删除。如果想删除 ou=People,dc=siroe,dc=com,则必须首先删除 Paula Simon 和 Jerry O’Connor 条目,以及该子树下的其它所有条目。

下面是一个有关如何使用 ldapdelete 实用程序的典型示例:假定:

  • 想删除由特异名称 cn=Robert Jenkins,ou=People,dc=siroe,dc=comcn=Lisa Jangles, ou=People,dc=siroe,dc=com 标识的条目。

  • 已创建数据库管理员。他有权修改条目,且特异名称为 cn=Directory Manager, dc=siroe,dc=com

  • 数据库管理员的口令为 King-Pin

  • 服务器位于 cyclops 处。

  • 服务器使用端口号 845

要删除用户 Robert Jenkins 和 Lisa Jangles 的条目,请输入下列命令:

ldapdelete -D "cn=Directory Manager,dc=siroe,dc=com" -w King-Pin -h cyclops -p 845 "cn=Robert Jenkins,ou=People,dc=siroe,dc=com" "cn=Lisa Jangles,ou=People,dc=siroe,dc=com"

下表说明了示例中所用的 ldapdelete 参数:




参数名

说明

-D  

指定进行服务器验证时所用的特异名称。此值必须为可被 iPlanet Directory Server 识别的 DN,且还必须有权修改条目。  

-w  

指定与 -D 参数中所指定的特异名称相关联的口令。  

-h  

指定运行服务器的主机的名称。  

-p  

指定服务器所用的端口号。  

有关 ldapdelete 参数的完整信息,请参阅 iPlanet Directory Server 配置、命令和文件参考指南


使用特殊字符

使用 Directory Server 命令行客户机工具时,可能需要包含对于命令行解释程序而言有特殊意义的字符(例如空格 [ ]、星号 [*]、反斜杠 [\] 等)。这种情况下,请将此值括到引号 ("") 中。例如:

-D "cn=Barbara Jensen,ou=Product Development,dc=siroe,dc=com"

根据所用的命令行实用程序,应使用单引号或双引号。有关详细信息,请参阅操作系统文档。

此外,如果使用的 DN 中包含逗号,则必须用反斜杠 (\) 对逗号进行转义。例如:

-D "cn=Patricia Fuentes,ou=people,o=siroe.com Bolivia\,S.A."

要从 siroe.com Bolivia, S.A. 目录树中删除用户 Patricia Fuentes,请输入下列命令:

ldapdelete -D "cn=Directory Manager,dc=siroe,dc=com" -w King-Pin -h cyclops -p 845 "cn=Patricia Fuentes,ou=People,o=siroe.com Bolivia\,S.A."



LDIF 更新语句



使用 LDIF 更新语句可以定义 ldapmodify 更改目录的方式。一般情况下,LDIF 更新语句是一系列具有下列功能的语句:

  • 指定所要修改之条目的特异名称。

  • 指定用于定义特定条目修改方式的更改类型 (add, delete, modify, modrdn)。

  • 指定一系列属性及其更改值。

除非将 ldapmodify-a 参数配合使用,否则需要指定更改类型。如果指定 -a 参数,则认为是添加操作 (changetype: add)。但是,其它任何更改类型都将覆盖 -a 参数。

如果指定修改操作 (changetype: modify),则应提供更改操作,以指示条目的更改方式。

如果指定 changetype: modrdn,则需要提供更改操作,以指定如何修改“相对特异名称”(RDN)。特异名称的 RDN 就是 DN 最左侧的值。例如,特异名称 uid=ssarette,dc=siroe,dc=com 的 RDN 为 uid=ssarette

LDIF 更新语句的一般格式如下所示:

dn: distinguished_name
changetype_identifier
change_operation_identifier
list_of_attributes

-

change_operation_identifier
list_of_attributes
-

如果需要指定连续的更改操作,则必须使用破折号 (-) 来指示更改操作的结束。例如,下列语句将向条目中添加电话号码和 manager 属性。

dn: cn=Lisa Jangles,ou=People,dc=siroe,dc=com
changetype: modify
add: telephonenumber
telephonenumber: (408) 555-2468
-
add: manager
manager: cn=Harry Cruise,ou=People,dc=siroe,dc=com

此外,折行续接运算符为单个空格。因此,下列两个语句相同:

dn: cn=Lisa Jangles,ou=People,dc=siroe,dc=com

dn: cn=Lisa Jangles,
 ou=People,
 dc=siroe,dc=com

下列各节将详细介绍更改类型。


使用 LDIF 添加条目

使用 changetype: add 可以向目录中添加条目。添加条目时,请务必创建代表分支点的条目,之后再尝试在该分支下创建新条目。也就是说,如果想将条目放到 People 或 Groups 子树中,则在这些子树中创建条目之前,应首先创建这些子树的分支点。

下列 LDIF 更新语句可用于创建 People 和 Groups 子树,然后在这些目录树中创建条目:

dn: dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: organization
o: siroe.com

dn: ou=People, dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: organizationalUnit
ou: People
ou: Marketing

dn: cn=Pete Minsky,ou=People,dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Pete Minsky
givenName: Pete
sn: Minsky
ou: People
ou: Marketing
uid: pminsky

dn: cn=Sue Jacobs,ou=People,dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Sue Jacobs
givenName: Sue
sn: Jacobs
ou: People
ou: Marketing
uid: sjacobs

dn: ou=Groups,dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: organizationalUnit
ou: Groups

dn: cn=Administrators,ou=Groups,dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: groupOfNames
member: cn=Sue Jacobs,ou=People,dc=siroe,dc=com
member: cn=Pete Minsky,ou=People,dc=siroe,dc=com
cn: Administrators

dn: ou=siroe.com Bolivia\, S.A.,dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: organizationalUnit
ou: siroe.com Bolivia\, S.A.

dn: cn=Carla Flores,ou=siroe.com Bolivia\, S.A.,dc=siroe,dc=com
changetype: add
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Carla Flores
givenName: Carla
sn: Flores
ou: siroe.com Bolivia\, S.A.
uid: cflores


使用 LDIF 重命名条目

使用 changetype:modrdn 可以更改条目的相对特异名称 (RDN)。条目的 RDN 就是特异名称中最左侧的部分。因此,

cn=Barry Nixon,ou=People,dc=siroe,dc=com

的 RDN 为:

cn=Barry Nixon

ou=People,dc=siroe,dc=com

的 RDN 为:

ou=People

因此,此重命名操作将用于更改条目特异名称中最左侧的值。

例如,条目

cn=Sue Jacobs,ou=People,dc=siroe,dc=com

可以改为:

cn=Susan Jacobs,ou=People,dc=siroe,dc=com

但不能改为:

cn=Sue Jacobs,ou=old employees,dc=siroe,dc=com

下面的示例可用于将 Sue Jacobs 重命名为 Susan Jacobs:

dn: cn=Sue Jacobs,ou=Marketing,dc=siroe,dc=com
changetype: modrdn
newrdn: cn=Susan Jacobs
deleteoldrdn: 0

由于 deleteoldrdn0,因此本例中将把现有的 RDN 继续保留为新条目的值。除了原条目中所包含的其它所有属性外,最终的条目还将有一个通用名 (cn) 属性:既设置为 Sue Jacobs,也设置为 Susan Jacobs。但如果使用的是

dn: cn=Sue Jacobs,ou=Marketing,dc=siroe,dc=com
changetype: modrdn
newrdn: cn=Susan Jacobs
deleteoldrdn: 1

服务器就会删除 cn=Sue Jacobs,而此时只有 cn=Susan Jacobs 保留在条目中。


有关重命名条目的说明

不能用 modrdn 更改类型来重命名条目,因为这样会将条目移动到完全不同的子树中。要将条目移动到完全不同的分支中,则必须使用旧条目的属性在备用子树中创建新的条目,然后删除旧的条目。

同样的原因,如果某个条目是分支点,则不能删除该条目;如果条目中有子项,则不能重命名该条目。否则,就会孤立目录树中的子项,而这是 LDAP 协议所不允许的。例如,对于下面三个条目而言:

ou=People,dc=siroe,dc=com
cn=Paula Simon,ou=People,dc=siroe,dc=com
cn=Jerry O'Connor,ou=People,dc=siroe,dc=com

您只能重命名最后两个条目。只有在下面没有任何其它条目的情况下,才能对标识 People 子树的条目进行重命名。


使用 LDIF 修改条目

使用 changetype:modify 可以针对条目添加、替换或删除属性和/或属性值。指定 changetype:modify 时,也必须同时提供更改操作,以指示条目的修改方式。更改操作可以是:

  • add: attribute

    添加指定的属性或属性值。如果属性类型相对于该条目而言当前不存在,就会创建该属性及其相应的值。如果属性类型相对于该条目而言已经存在,就会将指定的属性值添加到现有的值中。如果该条目中已存在这个特定的属性值,操作即告失败,同时服务器将返回错误。

  • replace: attribute

    指定的值将用于整个替换属性的值。如果属性尚未存在,则予以创建。如果未指定属性的替换值,则删除该属性。

  • delete: attribute

    删除指定的属性。如果条目中存在属性的多个值,则删除条目中该属性的所有值。要想只删除多个属性值中的一个,请在 delete 更改操作后面的行上指定该属性及其相关值。

本部分包含下列主题:


使用 LDIF 将属性添加到现有的条目中

changetype:modify 与更改操作配合使用,可以向条目中添加属性和属性值。

例如,下列 LDIF 更新语句将向条目中添加电话号码:

dn: cn=Barney Fife,ou=People,dc=siroe,dc=com
changetype: modify
add: telephonenumber
telephonenumber: 555-1212

下例将向条目中添加两个电话号码:

dn: cn=Barney Fife,ou=People,dc=siroe,dc=com
changetype: modify
add: telephonenumber
telephonenumber: 555-1212
telephonenumber: 555-6789

下例将向条目中添加两个 telephonenumber 属性和一个 manager 属性:

dn: cn=Barney Fife,ou=People,dc=siroe,dc=com
changetype: modify
add: telephonenumber
telephonenumber: 555-1212
telephonenumber: 555-6789
-
add: manager
manager: cn=Sally Nixon,ou=People,dc=siroe,dc=com


使用 LDIF 更改属性值

changetype:modify 与替换操作配合使用,即可更改条目中属性的所有值。

例如,下列 LDIF 更新语句将把 Barney 的经理从 Sally Nixon 更改为 Wally Hensford:

dn: cn=Barney Fife,ou=People,dc=siroe,dc=com
changetype: modify
replace: manager
manager: cn=Wally Hensford, ou=People, dc=siroe,dc=com

如果条目中有属性的多个实例,要更改其中的某个属性值,则必须删除所要更改的属性值,然后添加替换值。例如,不妨考虑下列条目:

cn=Barney Fife,ou=People,dc=siroe,dc=com
objectClass: inetOrgPerson
cn: Barney Fife
sn: Fife
telephonenumber: 555-1212
telephonenumber: 555-5678

要将电话号码 555-1212 更改为 555-4321,请使用下列 LDIF 更新语句:

dn: cn=Barney Fife,ou=People,dc=siroe,dc=com
changetype: modify
delete: telephonenumber
telephonenumber: 555-1212
-
add: telephonenumber
telephonenumber: 555-4321

Barney 的条目现在为:

cn=Barney Fife,ou=People,dc=siroe,dc=com
objectClass: inetOrgPerson
cn: Barney Fife
sn: Fife
telephonenumber: 555-5678
telephonenumber: 555-4321


使用 LDIF 删除所有属性值

changetype:modify 与删除操作配合使用,即可删除条目中的属性。如果条目中有属性的多个实例,则必须指示所要删除的属性实例。

例如,下列 LDIF 更新语句将从条目中删除 telephonenumber 属性的所有实例,而不管它在条目中出现的次数:

dn: cn=Barney Fife,ou=People,dc=siroe,dc=com
changetype: modify
delete: telephonenumber

如果想删除特定的 telephonenumber 属性实例,则只需删除该特定属性的属性值。下节将介绍如何完成上述任务。


使用 LDIF 删除特定属性值

changetype:modifydelete 操作配合使用可以删除条目的属性值。

例如,不妨考虑下列条目:

cn=Barney Fife,ou=People,dc=siroe,dc=com
objectClass: inetOrgPerson
cn: Barney Fife
sn: Fife
telephonenumber: 555-1212
telephonenumber: 555-5678

要删除该条目中的电话号码 555-1212,请使用下列 LDIF 更新语句:

dn: cn=Barney Fife,ou=People,dc=siroe,dc=com
changetype: modify
delete: telephonenumber
telephonenumber: 555-1212

Barney 的条目将变成:

cn=Barney Fife,ou=People,dc=siroe,dc=com
objectClass: inetOrgPerson
cn: Barney Fife
sn: Fife
telephonenumber: 555-5678


使用 LDIF 修改条目

使用 changetype:delete 可以删除目录中的条目。您只能删除叶条目。因此,在删除条目时,应确保目录树中该条目的下面没有其它条目。也就是说,除非首先删除属于某个组织单元的所有条目,否则将无法删除该组织单元条目。

例如,对于下面三个条目而言:

ou=People,dc=siroe,dc=com
cn=Paula Simon,ou=People,dc=siroe,dc=com
cn=Jerry O'Connor,ou=People,dc=siroe,dc=com

只能删除最后两个条目。标识 People 子树的条目只有在下面没有其它条目的情况下才能予以删除。

下列 LDIF 更新语句可用于删除人员条目:

dn: cn=Pete Minsky,ou=People,dc=siroe,dc=com
changetype: delete

dn: cn=Sue Jacobs,ou=People,dc=siroe,dc=com
changetype: delete



警告

请勿删除后缀 o=NetscapeRoot。iPlanet 管理服务器使用该后缀来存储有关已安装 iPlanet 服务器的信息。删除该后缀会强制用户重新安装所有 iPlanet 服务器,包括目录服务器。




修改国际化目录中的条目

可以用有关属性类型的语言选项卡来指定使用非英语语言的属性值。使用 ldapmodify 命令行实用程序来修改具有关联语言标记的属性时,必须确保属性值与语言标记完全匹配,否则修改操作即告失败。

例如,如果想修改语言标记为 lang-fr 的属性值,则必须在修改操作中包含 lang-fr,如下所示:

dn: bjensen,dc=siroe,dc=com
changetype: modify
replace: homePostalAddress;lang-fr
homePostalAddress;lang-fr: 34\, rue de Seine



保持参照完整性



参照完整性是一种确保维持相关条目之间关系的数据库机制。在 Directory Server 中,参照完整性可用于确保对一个条目的更新将正确反映在可能引用该更新条目的其它所有条目中。

例如,如果从目录中移走某个用户条目且已启用参照完整性,服务器就会同时从该用户所在的所有组中删除该用户。如果未启用参照完整性,则在由管理员进行手动删除前,该用户仍将是组的成员。如果是将目录服务器与其它依赖用户和组管理目录的 iPlanet 产品进行集成,该功能就会较为重要。


参照完整性的原理

启用参照完整性后,它将在删除或重命名操作后立即对指定的属性进行完整性更新。默认情况下,参照完整性插件处于禁用状态。

删除或重命名目录中的用户或组条目时,操作将被记录到参照完整性日志文件中:

/var/ds5/slapd-serverID/logs/referint

经过指定的一段时间后(称为更新间隔),服务器将搜索目录中已启用参照完整性的所有属性,并使搜索到的条目与日志文件中已删除或修改之条目的 DN 相匹配。如果日志文件显示已删除该条目,则说明相应的属性也已被删除。如果日志文件显示条目已进行过更改,则对应的属性值也会相应地进行更改。

默认情况下,如果参照完整性插件处于启用状态,它就会在删除或重命名操作后立即对 memberuniquememberownerseeAlso 属性执行完整性更新。但可以对参照完整性插件的行为进行配置,使之符合自己的需要。您可以:

  • 在复制更改日志中记录参照完整性的更新

  • 修改更新间隔

  • 选择要应用参照完整性的属性

  • 禁用参照完整性


将参照完整性与复制功能配合使用

在复制环境中,参照完整性插件的使用将受到一定的限制:

  • 一定不要在专用客户服务器(一种仅包含只读副本的服务器)上启用该插件。

  • 对于包含读写副本及只读副本组合的服务器,一定不要启用上面的参照完整性插件。

  • 可以在仅包含读写副本的原版服务器上启用该插件。

  • 在多原版复制环境下,应仅启用一个原版上的参照完整性插件。


配置供给服务器

当复制环境满足上述条件时,即可启用参照完整性插件。

  1. 启用参照完整性插件。

    有关该任务的说明见“启用/禁用参照完整性”

  2. 将插件配置为在更改日志中记录所有完整性更新。

    有关该任务的说明见“在更改日志中记录更新”

  3. 确保禁用所有客户服务器上的参照完整性插件。



    注意 由于供给服务器会将参照完整性插件所做的更改发送给客户服务器,因此没必要在客户服务器上运行参照完整性插件。




启用/禁用参照完整性

从 iPlanet Directory Server Console 或命令行上可以启用或禁用参照完整性。


从 iPlanet Directory Server Console

  1. 在 iPlanet Directory Server Console 上,选择“配置”选项卡。

    有关启动 iPlanet Directory Server Console 的详细信息,请参阅第 26 页上的“使用 iPlanet Directory Server Console”

  2. 展开导航树中的插件文件夹,然后选择 Referential Integrity Postoperation 插件。

    该插件的设置将显示在右侧窗口中。

  3. 选中“启用插件”复选框将启用该插件,而清除该复选框则禁用该插件。

  4. 单击“保存”可保存更改结果。

  5. 为使更改生效,请转到“任务”选项卡,然后选择“重新启动 Directory Server”。


在更改日志中记录更新

您可以决定在复制更改日志中记录更新内容,而不是将其记录到 slapd-serverID/logs 目录下的 referint 文件中。在复制环境中,如果想将参照完整性更新内容复制到客户服务器中,则必须进行上述操作。

此更改可以从 iPlanet Directory Server Console 中进行。


从 iPlanet Directory Server Console

  1. 在 iPlanet Directory Server Console 上,选择“配置”选项卡。

  2. 展开导航树中的插件文件夹,然后选择 Referential Integrity Postoperation 插件。

    该插件的设置将显示在右侧窗口中。

  3. 在参数列表中,将文件名 referint 替换为到更改日志目录的绝对路径。

  4. 单击“保存”可保存更改结果。

  5. 为使更改生效,请转到“任务”选项卡,然后选择“重新启动 Directory Server”。


修改更新间隔

默认情况下,服务器将在 deletemodrdn 操作后立即执行参照完整性更新。如果想降低该操作对系统所造成的影响,可以增加更新的时间间隔。尽管没有最大更新间隔的限制,但我们常用的是下列间隔:

  • 立即更新

  • 90 秒(每隔 90 秒更新一次)

  • 3600 秒(每小时更新一次)

  • 10,800 秒(每 3 小时更新一次)

  • 28,800 秒(每 8 小时更新一次)

  • 86,400 秒(每天更新一次)

  • 604,800 秒(每周更新一次)

可以从 iPlanet Directory Server Console 上修改更新间隔。


从 iPlanet Directory Server Console

  1. 在 iPlanet Directory Server Console 上,选择“配置”选项卡。

  2. 展开导航树中的插件文件夹,然后选择 Referential Integrity Postoperation 插件。

    该插件的设置将显示在右侧窗口中。

  3. 在参数列表中,将第一个文本框中的值替换为相应的时间间隔。

  4. 单击“保存”可保存更改结果。

  5. 为使更改生效,请转到“任务”选项卡,然后选择“重新启动 Directory Server”。


修改属性列表

缺省情况下,参照完整性将设置为对 memberuniquememberownerseeAlso 属性进行更新。可以从 iPlanet Directory Server Console 上添加或删除所要更新的属性。


从 iPlanet Directory Server Console

  1. 在 iPlanet Directory Server Console 上,选择“配置”选项卡。

  2. 展开导航树中的插件文件夹,然后选择 Referential Integrity Postoperation 插件。

    该插件的设置将显示在右侧窗口中。

  3. 在“参数”部分,使用“添加”和“删除”按钮来修改列表中的属性。

  4. 单击“保存”可保存更改结果。

  5. 为使更改生效,请转到“任务”选项卡,然后选择“重新启动 Directory Server”。



    注意 为获得最佳性能,还应建立进行更新的属性集的索引。有关索引的信息,请参阅第 8 章“管理索引”




上一页      目录      索引      文档主页      下一页     
版权所有 © 2001 Sun Microsystems, Inc.。部分版权所有 © 2001 Netscape Communications Corp.。保留所有权利。

最近更新时间 2002 年 2 月 15 日