在确保您可以访问 NIS 服务器之后,您需要决定用 NIS 映射替换或增强哪些配置文件。通常,您会希望对主机和密码查找功能使用 NIS 映射。如果您不运行 BIND,前者尤其有用。后者允许所有用户从 NIS 域中的任何系统登录到他们的帐户;这通常需要通过 NFS 在所有主机之间共享一个中央 /home 目录。这将在下面的 节中详细解释。其他映射,如 services.byname,虽然没有那么显著的优势,但如果您安装了任何使用标准 services 文件中没有的服务名称的网络应用程序,则可以为您节省一些编辑工作。
通常,您希望在查找功能使用本地文件和查询 NIS 服务器时有一定的选择自由。NYS 允许您配置函数访问这些服务的顺序。这通过 /etc/nsswitch.conf 文件控制,该文件代表名称服务交换机 (Name Service Switch),但当然不仅限于名称服务。对于 NYS 支持的任何数据查找功能,它都包含一行,其中命名了要使用的服务。
服务的正确顺序取决于数据的类型。services.byname 映射不太可能包含与本地 services 文件中不同的条目;它可能只包含更多。因此,一个好的选择可能是首先查询本地文件,并且仅在未找到服务名称时才检查 NIS。另一方面,主机名信息可能会非常频繁地更改,因此 DNS 或 NIS 服务器应始终具有最准确的帐户,而本地 hosts 文件仅作为 DNS 和 NIS 发生故障时的备份。在这种情况下,您会希望最后检查本地文件。
下面的示例显示了如何配置 gethostbyname(2)、gethostbyaddr(2) 和 getservbyname(2) 函数,如上所述。它们将依次尝试列出的服务;如果查找成功,则返回结果,否则尝试下一个服务。
下面显示了 nsswitch.conf 文件中的条目可以使用的完整服务列表。实际查询的映射、文件、服务器和对象取决于条目名称。
目前,NYS 支持以下 nsswitch.conf 条目:hosts、networks、passwd、group、shadow、gshadow、services、protocols、rpc 和 ethers。可能会添加更多条目。
图- 显示了一个更完整的示例,其中介绍了 nsswitch.conf 的另一个特性:hosts 条目中的 [NOTFOUND=return] 关键字告诉 NYS,如果在 NIS 或 DNS 数据库中找不到所需的项目,则返回。也就是说,仅当对 NIS 和 DNS 服务器的调用因某些其他原因失败时,NYS 才会继续并搜索本地文件。然后,本地文件将仅在启动时以及 NIS 服务器关闭时用作备份。