name-service/switch SMF 服务是一项可配置的选择服务,通过它可以指定为每种类型的网络信息使用的名称信息服务或源。
名称服务转换由调用以下任意接口的客户机应用程序使用:
gethostbyname
getpwuid
getpwnam
getaddrinfo
name-service/switch SMF 服务定义各个网络数据库应使用什么命名服务。此信息以前存储在 /etc/nsswitch.conf 文件中。虽然此文件仍然存在,但必须通过更改此 SMF 服务中的相应属性来修改此文件包含的配置设置。
可以按如下方式显示这些属性:
$ svccfg -s name-service/switch listprop config config application config/default astring files config/value_authorization astring solaris.smf.value.name-service.switch config/password astring "files ldap" config/group astring "files ldap" config/host astring "files dns" config/automount astring "files ldap"
config/default 属性指定要搜索哪些缺省源。如果特定数据库没有设置其自己的属性,则会使用缺省源。在前面的示例中,除了 password、group、host 和 automount 之外,所有数据库都使用本地文件作为源。如果还需要缺省源之外的某些源,则将为特定数据库创建一个属性。在本例中,将先在本地文件中搜索 password、groups 和 automount,然后在 LDAP 中搜索。先在本地文件中搜索主机查找,然后在 DNS 中搜索。
如果要更改您的系统上启用的命名服务,必须更新 name-service/switch SMF 服务的相应属性以使用正确的命名服务。例如,假定您的 name-service/switch 的配置与上例相似,然后您禁用了 LDAP 并改为启用 NIS。
在这种情况下,需要设置 name-service/switch 服务的以下属性才能使用文件和 NIS:
config/password
config/group
config/automount
需要键入以下命令来正确设置这些属性:
# svccfg -s name-serivce/switch setprop config/password = astring: "'files nis'" # svccfg -s name-serivce/switch setprop config/group = astring: "'files nis'" # svccfg -s name-serivce/switch setprop config/automountconfig/password = astring: "'files nis'" # svccfg -s name-service/switch:default refresh
有关完整详细信息,请参见使用 Oracle Solaris 11.2 目录和命名服务:DNS 和 NIS 中的 第 2 章, 关于名称服务转换和使用 Oracle Solaris 11.2 目录和命名服务:DNS 和 NIS 中的 配置名称服务交换机。