系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

NIS 映射

NIS 映射中的信息以 ndbm 格式存储。ypfiles(4)ndbm(3C) 对映射文件的这一格式进行了说明。

NIS 映射设计用于替换 UNIX /etc 文件以及其他配置文件,因此其中除了存储名称和地址外还存储大量的其他信息。在运行 NIS 的网络中,每个 NIS 域的 NIS 主服务器会为该域中要查询的其他计算机保留一组 NIS 映射。NIS 从属服务器也会保留主服务器映射的副本。NIS 客户机可从主服务器或从属服务器获取名称空间信息。

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

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


注意 –

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


缺省 NIS 映射

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

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

表 4–3 介绍了缺省 NIS 映射、其中包含的信息以及 NIS 运行时软件是否查看对应的管理文件。

表 4–3 NIS 映射说明

映射名 

对应的 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

passwd, hosts

group

用于 UNIX 形式的验证。包含计算机名和邮件地址(包括域名)。如果存在可用的 netid 文件,则除了查询通过其他文件提供的数据外,还会查询该文件。

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 中添加了新 ipnodes 映射(ipnodes.byaddripnodes.byname)。这些映射可同时存储 IPv4 和 IPv6 地址。请参见 ipnodes(4) 手册页。NIS 客户机和服务器可以使用 IPv4 或 IPv6 RPC 传输进行通信。

ageing.byname 映射包含在实现 NIS 到 LDAP 转换时 yppasswdd 用来从 DIT 中读取和向其中写入口令生命期信息的信息。如果不使用口令生命期,则可从映射文件中将其注释掉。有关 NIS 到 LDAP 转换的更多信息,请参见第 15 章,从 NIS 转换为 LDAP(概述/任务)

使用 NIS 映射

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

例如,向运行 NIS 的网络中添加新计算机时,只需要更新主服务器中的输入文件并运行 make。这将自动更新 hosts.bynamehosts.byaddr 映射。然后,这些映射将传送给所有从属服务器,并可供域中所有客户机及其程序使用。当客户机或应用程序请求计算机名或地址时,NIS 服务器将参阅相应的 hosts.bynamehosts.byaddr 映射,并向该客户机发送请求的信息。

可以使用 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 个以内。