contents
下一主题: 运行 NIS 服务器 上一层: 网络信息系统 前一主题: NIS 与 NIS+ 的比较

NIS 的客户端

如果您熟悉编写或移植网络应用程序,您会注意到上面列出的大多数 NIS 映射都对应于 C 库中的库函数。例如,要获取 passwd 信息,您通常使用 getpwnam(3) 和 getpwuid(3) 函数,它们分别返回与给定用户名或数字用户 ID 关联的帐户信息。在正常情况下,这些函数将在标准文件(例如 /etc/passwd)上执行请求的查找。

然而,这些函数的 NIS 感知实现将修改此行为,并发出 RPC 调用,让 NIS 服务器查找用户名或 ID。这对于应用程序来说是完全透明的。该函数可以将 NIS 映射“附加”到原始文件,或者用它“替换”原始文件。当然,这并不意味着对文件进行真正的修改,而只是意味着对应用程序来说看起来好像文件已被替换或附加。

对于传统的 NIS 实现,过去存在一些约定,规定哪些映射替换原始信息,哪些映射附加到原始信息。有些,例如 passwd 映射,需要对 passwd 文件进行笨拙的修改,如果操作不当,可能会打开安全漏洞。为了避免这些陷阱,NYS 使用了一种通用的配置方案,该方案确定特定的一组客户端函数是使用原始文件、NIS 还是 NIS+,以及使用顺序。这将在本章的后面部分进行描述。



Andrew Anderson
1996 年 3 月 7 日星期四 23:22:06 EST