NIS的应用一般最多的是用来管理用户和组信息,从而可以统一管理机器的登录,资源和服务的权限控制等。不过Unix以及NIS的用户权限控制相对来说还是比较单一的。比如NFS服务,你可以在配置的时候限制哪些客户端被允许访问,但一般只限于某个IP地址段或域名段。如果希望将同一个域内的主机划分成不同的组(例如按照部门划分)来分配权限,或者希望限制仅有特定的用户才能访问,那就要使用到netgroup. 这个功能有点类似与Windows里的组或者OU.
netgroup比较常用的地方有passwd,group文件,NFS,/etc/hosts.equiv
和 .rhosts 等。
netgroup本身是放在/etc/netgroup,这是本地配置,也就是说每台机器你都要为他配置。那如果你已经有了NIS,你就可以把它放到NIS里和其他passwd,group一样一起发布,这样NIS域里的所有机器都可共享一份设置。 这又有点像Windows AD里本地组(OU)和域组(OU)
[1年多之后继续]
这里举个NFS的例子。假设我们在netgroup里设置如下的组
- itmachine \
-
(server1,-,testdomain)\
-
(server2,-,testdomain)
usermachine \
(server3,-,testdomain)\
(server4,-,testdomain)
-
-
itadmin \
-
(,Tom,)\
-
(,Jerry,)
简单说明一下格式。netgroup里的格式很简单
- groupname member1 member2 ....
其中memeber可以是另外一个组的名字(也就是可以嵌套组),也可以是具体的member, member的格式为
- (hostname,username,domianname)
那么回过来看例子里:
itmachine和usermachine组其实就是host 组,也就是用来把主机归类的。username这里是空的代表所有用户
itadmin组其实就是user组,用来归类用户ID。hostname和domain这里是空的,代表所有。
好了,有了这个netgroup之后,我们把它放在NIS里发布,那整个domain里都可以共享同一个netgroup配置了。
下面来看一下利用这个netgroup配置,我们来配置一个NFS配置文件(/etc/exports):
- /share1 @itmachine(rw,sync,no_root_squash) @usermachine (ro,sync,no_root_squash)
应该很好理解,在netgroup组的名字前加上@。 例子里说明itmachine组的机器对该目录可写,而usermachine组是只读。
我们再看一个本地/etc/passwd的例子。你可以在passwd里加上一个user group里说明哪些NIS里的帐号可以登录本机。你可以在/etc/passwd的最后一行加上:
这就代表所有NIS里属于itadmin组的人可以登录本地机器。
不过要使用这个功能,必须修改/etc/nsswitch.conf。
- passwd: compat
-
group: compat
在Solaris里你需要修改passwd为compat模式。而在Linux里稍微复杂一些,不同版本会有些不同,有时候也是compat,有时只需要files,nis也行。要实际测试一下。
NFS和passwd/group是2个比较常用到netgroup的地方,另外/etc/hosts.equiv和 .rhosts也可以用,这里就不一一举例了。
阅读(3047) | 评论(1) | 转发(0) |