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 服务由 SMF 进行管理。使用 svcadm 命令可以对此服务执行启用、禁用或重新启动等管理操作。有关 SMF 的概述,请参阅在 Oracle Solaris 11.2 中管理系统服务 中的 第 1 章, 服务管理工具简介。有关更多详细信息,另请参阅 svcadm(1M) 和 svcs(1) 手册页。
|
许多命令都支持 NIS 服务,下表中介绍了这些命令。
|
NIS 映射中的信息以 ndbm 格式存储。ypfiles(4) 和 ndbm(3C) 手册页解释了映射文件的格式。
NIS 映射扩展了对 UNIX /etc 数据和其他配置文件(例如 passwd、shadow 和 group)的访问,以便可以在网络上的系统之间共享相同的数据。共享这些文件简化了那些数据文件的管理性更新和管理。只需做很少的工作即可部署 NIS。不过,大型企业尤其是那些有安全要求的大型企业应当考虑改用 LDAP 命名服务。在运行 NIS 的网络中,每个 NIS 域的 NIS 主服务器会保留一组 NIS 映射,以供域中的其他计算机查询。NIS 从属服务器也会保留主服务器映射的副本。NIS 客户机可从主服务器或从属服务器获取名称空间信息。
NIS 映射实质上是包含两个列的表。一列为关键字,另一列为与该关键字相关的信息。NIS 通过搜索关键字为客户机查找信息。由于每个映射使用不同的关键字,因此有些信息存储在多个映射中。例如,计算机的名称和地址存储在两个映射中:hosts.byname 和 hosts.byaddr。当服务器已知计算机的名称而需要查找其地址时,它将在 hosts.byname 映射中进行查找。当服务器已知计算机的地址而需要查找其名称时,它将在 hosts.byaddr 映射中进行查找。
NIS Makefile 存储在安装时被指定为 NIS 服务器的计算机上的 /var/yp 目录中。在该目录中运行 make 会使 makedbm 基于输入文件创建或修改缺省的 NIS 映射。
Oracle Solaris 系统中提供了一组缺省 NIS 映射。您可能要使用所有这些映射,也可能只使用其中的部分映射。NIS 还可以使用您在安装其他软件产品时创建或添加的任何映射。
NIS 域的缺省映射位于每台服务器的 /var/yp/domain–name 目录中。例如,属于域 test.com 的映射位于每台服务器的 /var/yp/test.com 目录中。
下表介绍了缺省 NIS 映射并列出了每个映射的相应源文件名称。
|
当实现了 NIS 到 LDAP 转换时,ageing.byname 映射包含 yppasswdd 守护进程用来在目录信息树 (directory information tree, DIT) 中读写口令生命期信息的信息。如果不使用口令生命期,可以将其从映射文件中注释掉。有关 NIS 到 LDAP 转换的更多信息,请参见使用 Oracle Solaris 11.2 目录和命名服务:LDAP 中的 第 8 章, 从 NIS 转换为 LDAP。
与使用 /etc 文件系统进行更新相比,NIS 可使更新网络数据库变得更加简单。您无需在每次修改网络环境时更改每台计算机中的管理 /etc 文件。
不过,与 /etc 文件相比,NIS 也没有提供额外的安全性。如果需要额外的安全性,例如限制对网络数据库的访问、通过网络在使用 SSL 的情况下发送搜索结果、使用更高级的功能(例如 Kerberos 保护的搜索),则应当改用 LDAP 命名服务。
例如,向运行 NIS 的网络中添加新用户时,只需要更新主服务器中的输入文件并运行 make 命令即可。此命令将自动更新 passwd.byname 和 passwd.byuid 映射。然后,这些映射将传送给从属服务器,并可供域中所有客户机及其程序使用。当客户机或应用程序通过用户名或 UID 来请求信息时,NIS 服务器将相应地引用 passwd.byname 或 passwd.byuid 映射,并将所请求的信息发送到客户机。
您可以使用 ypcat 命令显示映射中的值。ypcat 基本格式为:
% ypcat mapname
其中,mapname 是要查看的映射的名称或其昵称。如果映射仅由关键字组成(如 ypservers),请使用 ypcat –k。否则,ypcat 将列显空白行。ypcat(1) 手册页介绍了 ypcat 的更多选项。
您可以使用 ypwhich 命令来确定哪台服务器是特定映射的主服务器。键入以下命令。
% ypwhich -m mapname
其中,mapname 是要查找其主服务器的映射的名称或昵称。ypwhich 给出的响应是显示主服务器的名称。有关完整信息,请参阅 ypwhich(1) 手册页。
昵称是完整映射名的别名。要获得可用映射昵称(如 passwd.byname 的 passwd)的列表,请键入 ypcat –x 或 ypwhich –x。
昵称存储在 /var/yp/nicknames 文件中,该文件中包含映射昵称,后跟映射的完全指定名称,两者之间以空格分隔。您可以对此列表进行添加或修改。目前,昵称限制在 500 个以内。