分类: LINUX
2008-04-26 18:18:02
NIS组映射的典型用法是允许在多个用户之间共享文件,这可以用于本地文件也可以用于NFS文件,这里将介绍如何实现它,我们假设你有两个用户(这个技术可以应用与任何数量的用户),它们的passwd映射条目如下:
jane:*:1234:42:Jane:/home/jane:/bin/bash
joe:*:5678:57:Joe:/home/joe:/bin/bash
它定义了jane的主组ID是42,joe的主组ID是57。
使用NIS组映射,你可以给账号添加额外的组成员。组条目:
projectX:*:127:jane,joe
它定义一个新组projectX,没有密码(*),组ID是127,有两个成员。在group文件中不能有注释。
如果你现在为组projectX创建一个目录,并设置了读/写/执行权限:
# mkdir /projects/X/
# chgrp projectX /projects/X/
# chmod g+wrx /projects/X/
在projectX组中每个成员在这个文件空间内都有读/写/执行权限,用户可能首先需要执行newgrp projectX命令。
无论什么时候,你要往组映射中添加或要从中移除账号时,在你的主NIS服务器上编辑 /etc/NIS/group文件后,执行下面的命令:
% cd /var/yp
% sudo make group
这就产生一个新的组映射,这让所有客户端可以立即收到改动信息,不需要接触任何客户端。现在任何事情都集中在你的主NIS服务器上进行。
NIS 网络组
网络组是与组不同,网络组分两种,用户网络组和主机网络组。两种网络组都可以包含网络组作为成员,因此网络组定义可以是分层的,两种网络组都定义在相同的netgroup文件中,这个文件是允许使用注释信息的。
主机网络组在/etc/NIS/netgroup文件中的定义象下面这样子:
# Group of project groups: projects \ projectA \ projectB \ projectX # Group of hosts for Project X projectX \ (host1.example.com,-,) \ (host2.example.com,-,) \ (host3.example.com,-,) |
现在这些主机网络组定义允许你导出NFS空间到你机器的子集,在你NFS服务器上的/etc/exports文件中,你可以使用象下面的结构:
# export the /projects directory to all machines # in the "projects" netgroup /projects @projects(rw,root_squash) # export Project X' space only to machines # in the "projectX" netgroup /projects/X @projectX(rw,root_squash) |
再说一次,添加或移除主机,添加/删除网络组只需要编辑主NIS服务器上的/etc/NIS/netgroup文件即可。执行cd /var/yp;sudo make netgroup更新NIS映射,改动就会立即生效。