NIS 网络组是为实现您的管理目标而定义的用户或计算机组(集)。例如,可以创建执行以下功能的网络组。
定义可以访问特定计算机的一组用户
定义一组 NFS 客户机,将为其赋予特定文件系统访问权限
定义要对特定 NIS 域中的所有计算机具有管理员权限的一组用户
每个网络组都有一个网络组名。网络组不直接设置权限或访问权限。而是由其他 NIS 映射在通常使用用户名或计算机名的地方使用网络组名。例如,假设您创建了一个由网络管理员构成的网络组,名为 netadmins。要向 netadmins 组的所有成员授予对给定计算机的访问权限,只需向该计算机的 /etc/passwd 文件中添加一个 netadmin 项即可。也可以将网络组名添加到 /etc/netgroup 文件中,并将其传播到 NIS netgroup 映射。有关使用网络组的更多详细信息,请参见 netgroup(4)。
在使用 NIS 的网络中,主 NIS 服务器上的 netgroup 输入文件用于生成三种映射:netgroup、netgroup.byuser 和 netgroup.byhost。netgroup 映射包含 netgroup 输入文件中的基本信息。另外两种 NIS 映射中包含的信息的格式可在给定计算机或用户的情况下加速网络组信息的查找。
netgroup 输入文件中的项格式如下:name ID,其中 name 是为网络组给定的名称,而 ID 用于标识属于该网络组的计算机或用户。根据需要,可为网络组指定尽量多的 ID(成员),ID 之间用逗号分隔。例如,要创建具有三个成员的网络组,netgroup 输入文件项将使用以下格式:name ID, ID, ID。netgroup 输入文件项中的成员 ID 使用以下格式。
([-|machine], [-|user], [domain]) |
其中,machine 是计算机名,user 是用户 ID,domain 是计算机或用户的 NIS 域。domain 元素是可选的,并且只应用来标识其他某个 NIS 域中的计算机或用户。每个成员项的 machine 和 user 元素是必需的,但连字符 (-) 用来表示内容为空。项中的计算机和用户元素之间不存在必然联系。
下面是两个 netgroup 输入文件项样例,每个样例都创建一个名为 admins 的网络组,网络组由用户 hauri 和 juanita(后者在远程域 sales 中)以及计算机 altair 和 sirius 组成。
admins (altair, hauri), (sirius,juanita,sales) |
admins (altair,-), (sirius,-), (-,hauri), (-,juanita,sales) |
各个程序会在登录、远程挂载、远程登录以及远程 shell 创建期间使用 NIS 映射来进行权限检查。这些程序包括 mountd、login、rlogin 和 rsh。如果 login 命令在 passwd 数据库中遇到网络组名,它会在网络组映射中查询用户类别。 如果 mountd 守护进程在 /etc/dfs/dfstab 文件中遇到网络组名,它将查看计算机分类的网络组映射。rlogin 和 rsh(实际上,任何使用 ruserok 接口的程序)在 /etc/hosts.equiv 或 .rhosts 文件中遇到网络组名时,会在网络组映射中查询计算机以及用户分类信息。
如果向网络中添加新 NIS 用户或计算机,请确保在 netgroup 文件中将其添加到相应网络组中。然后使用 make 和 yppush 命令创建网络组映射,并将其推送到所有 NIS 服务器。有关使用网络组和网络组输入文件语法的详细信息,请参见 netgroup(4)。