跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中使用命名和目录服务 Oracle Solaris 11.1 Information Library (简体中文) |
4. 设置 Oracle Solaris Active Directory 客户机(任务)
11. 为使用 LDAP 客户机设置 Oracle Directory Server Enterprise Edition(任务)
名称服务转换是一项可配置的选择服务,管理员可通过它来指定为每种类型的网络信息使用的名称信息服务或源。服务被称为一个数据库。名称服务转换由调用任意 getXbyY() 接口(如以下接口)的客户机应用程序使用。
每个系统在 SMF 系统信息库中都有其自己的配置。名称服务转换中定义的每个属性都标识一个特定的数据库,例如主机、口令或组。指定给每个属性的值列出了可从中请求信息的一个或多个源。有时,这些值包括指导或选项。指导可以包括应当对服务进行多少次尝试、要应用的超时,以及如果服务失败要执行的操作。
表 2-1 名称服务转换的数据库
|
此外,名称服务转换中的 default 属性定义了当未定义源字符串时用于任何数据库的源字符串。如果您的网络为大多数数据库使用了相同的源,则可以更改 default 属性并且不为每个数据库定义属性。有关过程,请参见如何为所有命名数据库更改源。
要支持以前的发行版,可以将 enable_passwd_compat 和 enable_group_compat 属性设置为 true 以启用口令和组信息的 compat 模式。该模式在相应的数据库中提供了对旧式 + 或 - 语法的支持。在当前发行版中,此功能已被 pam_list 模块替代。
下表介绍了在名称服务转换中可以为上面列出的数据库列出的源的种类。
表 2-2 用于名称服务转换的信息源
|
以下搜索条件格式可用来选择一个或多个信息源,并可用来指定源的使用顺序。
单个源-如果某个信息类型只有一个源(例如 files),则使用名称服务转换的搜索例程将仅在该源中搜索信息。如果该例程找到了此信息,将返回 success 状态消息。如果该例程未找到此信息,则会停止搜索并返回不同的状态消息。不同的例程处理状态消息的方式也不同。
多个源-如果数据库中针对某个给定的信息类型包含了多个源,则名称服务转换会指示搜索例程在列出的第一个源中搜索。如果该例程找到了此信息,将返回 success 状态消息。如果该例程未在第一个源中找到此信息,将尝试在下一个源中进行搜索。该例程将依次搜索所有的源,直到找到此信息或者该例程被一个 return 指定停止。如果在搜索了列出的所有源之后仍未找到此信息,该例程将停止搜索并返回 non-success 状态消息。
缺省情况下,在 Oracle Solaris 11 发行版 中,第一个源是 files。当所列出的下一个源不可用时,此配置可防止系统挂起。
如果某个例程找到了此信息,则该例程返回 success 状态消息。如果该例程未找到此信息,则会返回下面的三个错误状态消息之一。下表列出了可能的状态消息。
表 2-3 用于名称服务转换的状态消息
|
可以指示名称服务转换用下表中显示的两个操作之一来响应状态消息。
表 2-4 从名称服务转换对状态消息的响应
|
此外,对于 TRYAGAIN 状态消息,可以定义以下操作:
forever-不限次数地重试当前源
n-将当前源额外重试 n 次
名称服务转换状态消息和操作选项的组合决定了搜索例程在每个步骤执行的操作。状态消息和操作选项的组合构成了搜索条件。
对于每个源,该转换的缺省搜索条件是相同的。此列表包括了对多个搜索条件的描述。
UNAVAIL=continue。转到下一个名称服务转换源并继续搜索。如果该源是最后一个源或唯一的源,将返回 NOTFOUND 状态。
NOTFOUND=continue。转到下一个名称服务转换源并继续搜索。如果该源是最后一个源或唯一的源,将返回 NOTFOUND 状态。
TRYAGAIN=continue。转到下一个名称服务转换源并继续搜索。如果该源是最后一个源或唯一的源,将返回 NOTFOUND 状态。
可以通过使用前面列表中显示的 STATUS=action 语法显式指定某个其他条件来更改缺省搜索条件。例如,NOTFOUND 条件的缺省操作是继续搜索下一个源。网络数据库的搜索条件可能报告为:
svc:/system/name-service/switch> listprop config/network config/network astring "nis [NOTFOUND=return] files"
networks: nis [NOTFOUND=return] files 项可以为 NOTFOUND 状态指定非缺省条件。非缺省条件由方括号分隔。
在本示例中,搜索条件按如下方式工作:
如果 network 数据库可用且包含需要的信息,搜索例程将返回 SUCCESS 状态消息。
如果 network 数据库不可用,搜索例程将返回 UNAVAIL 状态消息。缺省情况下,例程使用所列出的下一个条件继续搜索。
如果 network 数据库可用且已找到,但是不包含需要的信息,搜索例程将返回 NOTFOUND 消息。不过,例程将停止搜索,而不是执行缺省行为,即继续搜索下一个源。
如果 network 数据库处于繁忙状态,搜索例程将返回 TRYAGAIN 状态消息并且缺省情况下将继续搜索 network 数据库。
注 - 名称服务转换中的查找是按照项目的列出顺序执行的。但是,口令更新将以相反的顺序执行,除非使用 passwd -r repository 命令另行指定了更新顺序。有关更多信息,请参见名称服务转换和口令信息。
客户机库例程包含当没有在名称服务转换中定义特定的 SMF 属性或 default SMF 属性时或者该属性的语法不正确时使用的内建缺省项。通常,这些内建的缺省项只有 "files"。
auto_home 和 auto_master 表和映射的转换搜索条件组合成一个名为 automount 的类别。
timezone 表不使用名称服务转换,因此该表不包括在该转换的属性列表中。
只有当 keyserv 重新启动时,keyserv 守护进程才会读取名称服务转换中的 publickey 属性。如果您更改了名称服务转换属性,则在使用 svcadm refresh svc:/network/rpc/keyserv:default 重新启动 keyserv 守护进程之前,keyserv 不会注册这些更改。在更改属性并刷新 name-service/switch 服务之后,必须运行此命令以便将属性更改装入到 SMF 系统信息库中。