本章介绍如何创建和管理目录服务器实例和后缀。许多其他的目录管理任务也是在后缀级别进行配置的,但这些内容将在本书的其他章节进行介绍。
本章包含以下主题:
本章包含有关如何创建服务器实例和后缀的详细信息。如果您需要快速创建目录服务器实例和后缀,并导入一些示例数据,请参见《Sun Java System Directory Server Enterprise Edition 6.1 Installation Guide》中的“Server Instance Creation”。
本部分说明如何创建和删除目录服务器实例。
您必须先使用命令行工具或浏览器界面 目录服务控制中心 (Directory Service Control Center, DSCC) 创建目录服务器实例,然后才能管理数据。在 DSCC 中,目录服务器实例通常简称为“目录服务器”。
创建目录服务器实例时,目录服务器所需的文件和目录将在您指定的 instance-path 中创建。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
如果使用 DSCC 创建新的服务器实例,则可以选择复制现有服务器中的部分或全部服务器配置设置。
创建新的目录服务器实例并设置实例路径。
$ dsadm create instance-path |
系统将提示您为此服务器设置目录管理员密码。
要为服务器实例指定非默认端口号,或指定任何其他参数,请参见 dsadm(1M) 手册页。
例如,要在 /local/ds 目录中创建新实例,请使用以下命令:
$ dsadm create /local/ds Choose the Directory Manager password: Confirm the Directory Manager password: Use 'dsadm start /local/ds' to start the instance |
检查是否已正确创建服务器实例。
$ dsadm info instance-path |
例如:
$ dsadm info /local/ds1 Instance Path: /local/ds1 Owner: user1(group1) Non-secure port: 1389 Secure port: 1636 Bit format: 64-bit State: Running Server PID: 22555 DSCC url: - SMF application name: - Start at boot: Disabled Instance version: D-A00 |
(可选的)如果已使用 Java Enterprise System 安装程序或本地软件包安装对目录服务器进行了安装,并且操作系统提供服务管理解决方案,则可以将服务器作为服务进行管理,如下表所示。
操作系统 |
命令 |
---|---|
Solaris 10 |
如果在 Sun Cluster 环境中操作,请使用以下命令: dsadm enable-service --type CLUSTER instance-path resource-group 否则,请使用以下命令: dsadm enable-service --type SMF instance-path |
Solaris 9 |
如果在 Sun Cluster 环境中操作,请使用以下命令: dsadm enable-service --type CLUSTER instance-path resource_group 否则,请使用以下命令: dsadm autostart instance-path |
Linux、HP-UX |
dsadm autostart instance-path |
Windows |
dsadm enable-service --type WIN_SERVICE instance-path |
启动目录服务器。
$ dsadm start instance-path |
服务器正在运行,但不包含数据或后缀。请使用 dsconf 创建后缀。
(可选的)使用以下任一方法注册服务器实例:
访问 URL https://host:6789 并通过 DSCC 注册服务器。
使用 dsccreg add-server 命令。
有关详细信息,请参见 dsccreg(1M) 手册页。
如果您要使用密码策略,并且目录服务器实例为独立实例,或者,如果实例属于已迁移到 DS6-only 密码策略模式的复制拓扑,请将实例移动到该模式下。
$ dsconf pwd-compat -h host -p port to-DS6-migration-mode ## Beginning password policy compatibility changes . ## Password policy compatibility changes finished. Task completed (slapd exit code: 0). $ dsconf pwd-compat -h host -p port to-DS6-mode ## Beginning password policy compatibility changes . ## Password policy compatibility changes finished. Task completed (slapd exit code: 0). |
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
停止目录服务器。
$ dsadm stop instance-path |
如果以前使用 DSCC 管理服务器,请使用命令行取消注册此服务器。
$ dsccreg remove-server /local/ds Enter DSCC administrator's password: /local/ds is an instance of DS Enter password of "cn=Directory Manager" for /local/ds: This operation will restart /local/ds. Do you want to continue ? (y/n) y Unregistering /local/ds from DSCC on localhost. Connecting to /local/ds Disabling DSCC access to /local/ds Restarting /local/ds |
有关详细信息,请参见 dsccreg(1M) 手册页。
(可选的)如果以前在服务管理解决方案中启用了服务器实例,请停止将此服务器作为服务进行管理。
操作系统 |
命令 |
---|---|
Solaris 10 |
如果在 Sun Cluster 环境中操作,请使用以下命令: dsadm disable-service --type CLUSTER instance-path 否则,请使用以下命令: dsadm disable-service --type SMF instance-path |
Solaris 9 |
如果在 Sun Cluster 环境中操作,请使用以下命令: dsadm disable-service --type CLUSTER instance-path 否则,请使用以下命令: dsadm autostart --off instance-path |
Linux、HP-UX |
dsadm autostart --off instance-path |
Windows |
dsadm disable-service --type WIN_SERVICE instance-path |
删除服务器实例。
$ dsadm delete instance-path |
此命令将删除所有内容,包括数据库和数据。
如果实例已作为服务启用,或者在系统启动时自动启动了实例,则 dsadm delete 需要超级用户权限。
要从命令行启动、停止或重新启动服务器,请分别使用 dsadm start、dsadm stop 和 dsadm restart 命令。
如果停止和重新启动的目录服务器实例在内存中配置了较大缓存以存储条目,则此缓存需要花费一些时间进行重新填充。当缓存再次填满时,实例的响应速度将会变慢。
这些命令必须由创建目录服务器的相同 UID 和 GID 运行,或由超级用户运行。例如,如果目录服务器以 user1 身份运行,则应该以 user1 身份运行 start、stop 和 restart 实用程序。
在 Solaris 上,基于角色的访问控制允许您以非超级用户身份运行目录服务器。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。但是,这不适用于启用和禁用服务管理的步骤。在启动和停止目录服务器时,必须通过命令行启用和禁用服务管理。
要启动、停止或重新启动目录服务器,请执行以下任一操作:
要启动服务器,请键入:
$ dsadm start instance-path |
例如,要使用实例路径 /local/ds 启动服务器,请使用以下命令:
$ dsadm start /local/ds |
要停止服务器,请键入:
$ dsadm stop instance-path |
例如:
$ dsadm stop /local/ds |
要重新启动服务器,请键入:
$ dsadm restart instance-path |
例如:
$ dsadm restart /local/ds |
创建目录服务器实例之后,必须为服务器的目录信息树 (Directory Information Tree, DIT) 创建一个或多个后缀。DIT 由服务器中的所有条目组成,这些条目使用各自的标识名 (Distinguished Name, DN) 进行标识。DN 的分层特性可创建分支和叶条目,从而以树的形式组织数据。DIT 是以后缀和子后缀的形式进行定义和管理的。DSCC 提供了用于创建和管理所有这些元素的控件。此外,也可以使用命令行工具。
有关一般情况下构建目录数据以及后缀的概念性信息,请参见《Sun Java System Directory Server Enterprise Edition 6.1 Deployment Planning Guide》。
如以下过程中所述,您可以使用 dsconf create-suffix 命令在目录中创建后缀配置。由于在内部以相同方式管理根后缀和子后缀,因此从命令行创建这些后缀的过程几乎相同。此过程介绍了只与必需选项一起使用的 dsconf create-suffix 命令。有关此命令的其他选项的详细信息,请参见 dsconf(1M) 手册页,或运行以下命令:
$ dsconf create-suffix --help |
任何管理用户都可以创建配置条目。但是,后缀的顶级条目必须由目录管理员创建,或以目录管理者身份(如 cn=admin,cn=Administrators,cn=config)创建。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
如果使用 DSCC 创建新后缀,您可以选择复制现有后缀中的部分或全部后缀配置设置。
创建根后缀 。
请确保服务器正在运行,然后键入以下命令:
$ dsconf create-suffix -h host -p port suffix-DN |
其中 suffix-DN 是新后缀的完整 DN。对于根后缀,此约定为使用域组件 (dc) 命名属性。
例如,要创建 DN dc=example,dc=com 的后缀,请用以下命令:
$ dsconf create-suffix -h host1 -p 1389 dc=example,dc=com |
此命令将以如下方式创建新后缀:
创建根后缀的顶级(或基)条目。
创建后缀和数据库在 cn=config 中的配置条目。
默认数据库名称基于后缀 DN。
有关所有后缀的信息(包括已创建的新后缀),请使用以下命令:
$ dsconf list-suffixes -h host -p port -v |
-v 选项显示详细模式,此模式将显示后缀上的条目数量,以及所有复制信息。
如果有多个目录服务器实例,请使用 -h host name 和 -p port number 选项指定后缀所属的服务器实例。
如果要为数据库文件指定非默认路径,请使用 -L 选项。可以在后面的阶段中更改后缀数据库路径。要执行此操作,请使用命令 dsconf set-suffix-prop suffix-DN db-path:new-db-path,然后停止服务器,手动移动数据库文件,再重新启动服务器。
要查看创建后缀时可以使用的所有选项,请参见 dsconf(1M) 手册页。
创建子后缀(如果需要):
$ dsconf create-suffix -h host -p port subSuffix-DN |
然后,将此子后缀连接到根后缀。
$ dsconf set-suffix-prop -h host -p port subSuffix-DN parent-suffix-dn:parentSuffix-DN |
其中 parentSuffix-DN 必须与上一步中的 suffix-DN 具有相同的值。子后缀的 suffix-DN 包含此子后缀的相对标识名 (Relative Distinguished Name, RDN) 及其父后缀的 DN。
例如,要创建子后缀 ou=Contractors,dc=example,dc=com,并将此子后缀连接到根后缀,请键入:
$ dsconf create-suffix -h host1 -p 1389 ou=Contractors,dc=example,dc=com $ dsconf set-suffix-prop -h host1 -p 1389 ou=Contractors,dc=example,dc=com \ parent-suffix-dn:dc=example,dc=com |
此条目添加到目录中时,服务器的数据库模块将自动在以下目录中创建数据库文件:
instance-path/db/database-name |
其中 database-name 是基于部分后缀自动生成的名称。例如,在前面的示例中,database-name 应该为 Contractors
(可选的)使用数据初始化后缀。请参见初始化后缀。
有时可能需要禁用后缀以进行维护,或出于安全原因禁用后缀内容。如果禁用后缀,服务器将无法读取或写入后缀内容以响应任何客户端操作。禁用后缀时,您将不再具有该后缀的访问权限,并且引用模式将自动设置为禁用。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
禁用后缀。
$ dsconf set-suffix-prop -h host -p port suffix-DN enabled:off |
无法禁用已启用复制的后缀,因为复制后缀的大多数属性都由复制机制确定。
启用后缀。
$ dsconf set-suffix-prop -h host -p port suffix-DN enabled:on |
如果要限制对后缀的访问权限而不完全禁用后缀,则可以修改访问权限以允许只读访问。在这种情况下,必须定义对其他服务器的引用以执行写入操作。此外,还可以同时拒绝读取和写入访问,然后为后缀上的所有操作定义引用。
引用还可用于临时将客户端应用程序指向其他服务器。例如,备份后缀内容时,可能要添加对其他后缀的引用。
如果后缀是复制环境中的使用方,则复制机制将确定引用设置的值。尽管可以手动修改引用设置,但引用在下次复制更新时将被覆盖。有关设置复制引用的信息,请参见执行高级使用方配置。
引用是已标记的 URL,即 LDAP URL,其后可接空格字符和标签。例如:
ldap://phonebook.example.com:389/ |
或者:
ldap://phonebook.example.com:389/ou=All%20People,dc=example,dc=com |
由于空格字符非常重要,因此对于引用的 URL 部分中的任何空格字符,都必须使用 %20 进行转义。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
设置引用 URL。
$ dsconf set-suffix-prop -h host -p port suffix-DN referral-url:LDAP-URL |
其中 LDAP-URL 是有效的 URL,包含主机名、端口号和目标的 DN。
例如:
$ dsconf set-suffix-prop -h host1 -p 1389 dc=example,dc=com \ referral-url:ldap://phonebook.example.com:389/ |
可以指定任意数量的 LDAP URL。
设置引用模式,使后缀变为只读状态。
$ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:only-on-write |
要使后缀无法用于读取和写入操作,并为所有请求返回引用,请将 referral-mode 设置为enabled。
只要命令执行成功,后缀即变为只读或不可访问状态,并可返回引用。
(可选的)后缀变为可用状态时,请禁用引用,以使后缀再次变为读写状态。
$ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:disabled |
禁用引用时,后缀将自动变为读写状态,除非您通过将后缀的 enabled 属性设置为 off 禁用了此后缀。
删除后缀时,将从目录中永久地删除该后缀的所有数据条目。此外,还将删除所有后缀配置信息,包括其复制配置。
您无法删除父后缀,但将其子后缀保留在 DIT 中作为新的根后缀。如果要删除包含子后缀的整个分支,则必须同时删除已删除的父后缀的子后缀及其可能的子后缀。
您可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
删除后缀配置条目:
$ dsconf delete-suffix -h host -p port [subSuffix-DN] suffix-DN |
此命令将从位于 suffix-DN 处的基条目开始,从服务器中删除后缀。在目录中将无法再看到或访问此后缀。
Directory Server 6.1 支持脱机压缩后缀。此发行版本中不支持联机压缩。如果有可用存储空间,后缀压缩可通过重新组织数据库键来减少数据库大小。
在执行此任务之前,必须停止服务器。