JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中使用命名和目录服务     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

第 1 部分关于命名和目录服务

1.  命名和目录服务(概述)

2.  名称服务转换(概述)

3.  管理 DNS(任务)

4.  设置 Oracle Solaris Active Directory 客户机(任务)

第 2 部分NIS 设置和管理

5.  网络信息服务(概述)

NIS 介绍

NIS 体系结构

NIS 计算机类型

NIS 服务器

NIS 客户机

NIS 元素

NIS 域

NIS 守护进程

NIS 命令

NIS 映射

缺省 NIS 映射

使用 NIS 映射

NIS 映射昵称

NIS 绑定

服务器列表模式

广播模式

6.  设置和配置 NIS(任务)

7.  管理 NIS(任务)

8.  NIS 故障排除

第 3 部分LDAP 命名服务

9.  LDAP 命名服务介绍(概述)

10.  LDAP 命名服务的规划要求(任务)

11.  为使用 LDAP 客户机设置 Oracle Directory Server Enterprise Edition(任务)

12.  设置 LDAP 客户机(任务)

13.  LDAP 故障排除(参考信息)

14.  LDAP 命名服务(参考信息)

15.  从 NIS 转换为 LDAP(任务)

词汇表

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

NIS 元素

NIS 命名服务由以下元素组成:

NIS 域

NIS 是共享一组通用 NIS 映射的主机的集合。每个域都有一个域名,共享这组通用映射的每台计算机都属于该域。

NIS 域和 DNS 域不必相同。在某些环境中,NIS 域是基于企业范围内的网络子网管理布局定义的。DNS 名称和域是根据 Internet DNS 命名标准和分层结构定义的。这两种命名域命名系统可以配置为完全匹配的,也可以不配置为完全匹配的。这两种服务的域名是分别控制的,并可以按不同的方式进行配置。

任何主机都可以属于某个给定域,只要同一网络或子网中存在用于该域映射的服务器即可。NIS 域查找使用远程过程调用 (remote procedure call, RPC)。因此,NIS 要求所有客户机和向这些客户机提供直接服务的所有服务器计算机必须存在于同一个可访问的子网中。将每个管理子网作为单独的 NIS 域(不同于企业范围的 DNS 域)进行管理但使用从一台通用的主计算机管理的通用数据库,这一做法并不罕见。NIS 域名和所有共享的 NIS 配置信息通过 svc:/network/nis/domain SMF 服务进行管理。

NIS 守护进程

NIS 服务是由下表中显示的守护进程提供的。NIS 服务由 SMF 进行管理。使用 svcadm 命令可以对此服务执行启用、禁用或重新启动等管理操作。有关 SMF 的概述,请参见《在 Oracle Solaris 11.1 中管理服务和故障》中的第 1  章 "管理服务(概述)"。有关更多详细信息,另请参阅 svcadm(1M)svcs(1) 手册页。

表 5-1 NIS 守护进程

守护进程
功能

nscd

一项客户机服务,提供了一个用于大多数名称服务请求的高速缓存,该高速缓存由 svc:/system/name-service/cache 服务进行管理
rpc.yppasswdd
svc:/network/nis/passwd 服务管理的 NIS 口令更新守护进程

注 - rpc.yppasswdd 守护进程将所有以 r 开头的 shell 视为受限制的 shell。例如,如果您位于 /bin/rksh 中,将不允许从该 shell 更改到其他 shell 中。如果您有以 r 开头的 shell,但不想受到此类限制,请参阅第 8 章了解解决方法。


rpc.ypupdated
用于修改诸如 publickey 之类的映射的一个守护进程,由 svc:/network/nis/update 服务进行管理
ypbind
svc:/network/nis/client 服务管理的绑定进程
ypserv
svc:/network/nis/server 服务管理的服务器进程
ypxfrd
svc:/network/nis/xfr 服务管理的一个高速映射传送守护进程

NIS 命令

许多命令都支持 NIS 服务,下表中介绍了这些命令。

表 5-2 NIS 命令摘要

命令
说明
make
通过读取 /var/yp/Makefile 来更新 NIS 映射(当在 /var/yp 目录中运行此命令时)。您可以使用 make 根据输入文件来更新所有映射或更新个别映射。ypmake(1M) 手册页中介绍了用于 NIS 的 make 功能。
makedbm
接受一个输入文件并将其转换为 dbm.dirdbm.pag 文件。NIS 使用有效的 dbm 文件作为映射。使用 makedbm -u 还可以反汇编映射,从而可以了解构成它的关键字-值对。
ypcat
显示 NIS 映射的内容。
ypinit
自动根据输入文件为 NIS 服务器创建映射。它还用来在客户机上构造初始的 /var/yp/binding/domain/ypservers 文件。初次设置主 NIS 服务器和从属 NIS 服务器时请使用 ypinit
ypmatch
列显 NIS 映射中的一个或多个指定关键字的值。您不能指定要查看的 NIS 服务器映射的版本。
yppoll
显示在指定的服务器上运行的 NIS 映射的版本。还会列出映射的主服务器。
yppush
将 NIS 映射的新版本从 NIS 主服务器复制到其从属服务器。您需要在主 NIS 服务器上运行 yppush 命令。
ypset
指示 ypbind 进程绑定到指定的 NIS 服务器。该命令不能随意使用。出于安全原因,建议不要使用该命令。有关 ypbind 进程的 ypsetypsetme 选项的信息,请参见 ypset(1M)ypbind(1M) 手册页。
ypwhich
显示客户机此刻使用哪台 NIS 服务器提供 NIS 服务。如果调用时使用了 -m mapname 选项,则此命令将显示哪台 NIS 服务器是每个映射的主服务器。如果只使用 -m,此命令将显示所有可用映射的名称及其各自的主服务器。
ypxfr
使用 NIS 本身作为传输介质,将 NIS 映射从远程服务器引入到本地 /var/yp/domain 目录。您可以通过交互方式运行 ypxfr,或从 crontab 文件中定期运行该命令。ypserv 也会调用该命令以启动传送。

NIS 映射

NIS 映射中的信息是以 ndbm 格式存储的。ypfiles(4)ndbm(3C) 手册页解释了映射文件的格式。

NIS 映射扩展了对 UNIX /etc 数据和其他配置文件(例如 passwdshadowgroup)的访问,以便可以在网络上的系统之间共享相同的数据。共享这些文件简化了那些数据文件的管理性更新和管理。只需做很少的工作即可部署 NIS。不过,大型企业尤其是那些有安全要求的大型企业应当考虑改用 LDAP 命名服务。在运行 NIS 的网络中,每个 NIS 域的 NIS 主服务器会保留一组 NIS 映射,以供域中的其他计算机查询。NIS 从属服务器也会保留主服务器映射的副本。NIS 客户机可从主服务器或从属服务器获取名称空间信息。

NIS 映射实质上是包含两个列的表。一列为关键字,另一列为与该关键字相关的信息。NIS 通过搜索关键字为客户机查找信息。由于每个映射使用不同的关键字,因此有些信息存储在多个映射中。例如,计算机的名称和地址存储在两个映射中:hosts.bynamehosts.byaddr。当服务器已知计算机的名称而需要查找其地址时,它将在 hosts.byname 映射中进行查找。当服务器已知计算机的地址而需要查找其名称时,它将在 hosts.byaddr 映射中进行查找。

NIS Makefile 存储在安装时被指定为 NIS 服务器的计算机上的 /var/yp 目录中。在该目录中运行 make 会使 makedbm 基于输入文件创建或修改缺省的 NIS 映射。


注 - 请始终在主服务器上创建映射,因为在从属服务器上创建的映射将不会自动推送到主服务器。


缺省 NIS 映射

Oracle Solaris 系统中提供了一组缺省 NIS 映射。您可能要使用所有这些映射,也可能只使用其中的部分映射。NIS 还可以使用您在安装其他软件产品时创建或添加的任何映射。

NIS 域的缺省映射位于每台服务器的 /var/yp/domain–name 目录中。例如,属于域 test.com 的映射位于每台服务器的 /var/yp/test.com 目录中。

下表介绍了缺省 NIS 映射并列出了每个映射的相应源文件名称。

表 5-3 NIS 映射说明

映射名
相应的源文件
说明
audit_user
audit_user
包含用户审计预选数据。
auth_attr
auth_attr
包含授权名称和说明。
bootparams
bootparams
包含客户机在引导期间所需文件的路径名:root、swap,也可能是其他名称。
ethers.byaddr
ethers
包含计算机名和以太网地址。以太网地址是映射中的关键字。
ethers.byname
ethers
ethers.byaddr 相同,但关键字是计算机名而非以太网地址。
exec_attr
exec_attr
包含配置文件执行属性。
group.bygid
group
包含以组 ID 作为关键字的组安全信息。
group.byname
group
包含以组名作为关键字的组安全信息。
hosts.byaddr
hosts
包含计算机名和 IP 地址,以 IP 地址作为关键字。
hosts.byname
hosts
包含计算机名和 IP 地址,以计算机(主机)名作为关键字。
mail.aliases
aliases
包含别名和邮件地址,以别名作为关键字。
mail.byaddr
aliases
包含邮件地址和别名,以邮件地址作为关键字。
netgroup.byhost
netgroup
包含组名、用户名和计算机名。
netgroup.byuser
netgroup
netgroup.byhost 相同,但关键字为用户名。
netgroup
netgroup
netgroup.byhost 相同,但关键字为组名。
netid.byname
passwdhosts

group

用于 UNIX 形式的验证。包含计算机名和邮件地址(包括域名)。如果存在可用的 netid 文件,则除了查询通过其他文件提供的数据外,还会查询该文件。
publickey.byname
publickey
包含安全 RPC 使用的公钥数据库。
netmasks.byaddr
netmasks
包含要与 IP 一起提交的网络掩码,以地址作为关键字。
networks.byaddr
networks
包含系统已知的网络的名称及其 IP 地址,以地址作为关键字。
networks.byname
networks
networks.byaddr 相同,但关键字为网络的名称。
passwd.adjunct.byname
passwdshadow
包含 C2 客户机的审计信息和隐藏的口令信息。
passwd.byname
passwdshadow
包含以用户名作为关键字的口令信息。
passwd.byuid
passwdshadow
passwd.byname 相同,但关键字为用户 ID。
prof_attr
prof_attr
包含执行配置文件的属性。
protocols.byname
protocols
包含网络可识别的网络协议。
protocols.bynumber
protocols
protocols.byname 相同,但关键字为协议编号。
rpc.bynumber
rpc
包含系统可识别的 RPC 的程序编号和名称。关键字为 RPC 程序编号。
services.byname
services
列出网络可识别的 Internet 服务。关键字为端口或协议。
services.byservice
services
列出网络可识别的 Internet 服务。关键字为服务名。
user_attr
user_attr
包含用户和角色的扩展属性。
ypservers
N/A
列出网络可识别的 NIS 服务器。

当实现了 NIS 到 LDAP 转换时,ageing.byname 映射包含 yppasswdd 守护进程用来在目录信息树 (directory information tree, DIT) 中读写口令生命期信息的信息。如果不使用口令生命期,可以将其从映射文件中注释掉。有关 NIS 到 LDAP 转换的更多信息,请参见第 15 章

使用 NIS 映射

与使用 /etc 文件系统进行更新相比,NIS 可使更新网络数据库变得更加简单。您无需在每次修改网络环境时更改每台计算机中的管理 /etc 文件。

不过,与 /etc 文件相比,NIS 也没有提供额外的安全性。如果需要额外的安全性,例如限制对网络数据库的访问、通过网络在使用 SSL 的情况下发送搜索结果、使用更高级的功能(例如 Kerberos 保护的搜索),则应当改用 LDAP 命名服务。

例如,向运行 NIS 的网络中添加新用户时,只需要更新主服务器中的输入文件并运行 make 命令即可。此命令将自动更新 passwd.bynamepasswd.byuid 映射。然后,这些映射将传送给从属服务器,并可供域中所有客户机及其程序使用。当客户机或应用程序通过用户名或 UID 来请求信息时,NIS 服务器将相应地引用 passwd.bynamepasswd.byuid 映射,并将所请求的信息发送到客户机。

您可以使用 ypcat 命令显示映射中的值。ypcat 基本格式为:

% ypcat mapname

其中,mapname 是要查看的映射的名称或其昵称。如果映射仅由关键字组成(如 ypservers),请使用 ypcat -k。否则,ypcat 将显示空白行。ypcat(1) 手册页介绍了 ypcat 的更多选项。

您可以使用 ypwhich 命令来确定哪台服务器是特定映射的主服务器。键入以下命令。

% ypwhich -m mapname

其中,mapname 是要查找其主服务器的映射的名称或昵称。ypwhich 给出的响应是显示主服务器的名称。有关完整信息,请参阅 ypwhich(1) 手册页。

NIS 映射昵称

昵称是完整映射名的别名。要获得可用映射昵称(如 passwd.bynamepasswd)的列表,请键入 ypcat -xypwhich -x

昵称存储在 /var/yp/nicknames 文件中,该文件中包含映射昵称,后跟映射的完全指定名称,两者之间以空格分隔。您可以对此列表进行添加或修改。目前,昵称限制在 500 个以内。