nfs权限的常规配置就不说了,网上都有,下面说下我在工作中遇到的一个特别的需求,特别的方法
环境需求:目前开发环境有两个,大环境有nis,nfs,autofs,都没有问题;小环境有一台服务器单独连一台存储,有独立的账户信息,有一个项目需要在大环境中,访问小环境存储上的项目数据,要求只有项目组成员才能访问项目数据,并且项目目录的权限由项目组长自由配置,小环境中不能创建这个项目组成员的账户。
下面用虚拟机测试我的方法:
nfs |
Hostname |
ip |
Server |
server2 |
192.168.238.253 |
Client |
Lanv |
192.168.238.99 |
- [root@server2 nfstest]# showmount -e
- Export list for server2.lanv.com:
- /nfstest 192.168.238.0/24
- [root@lanv /]# df -h /nfsclient/
- Filesystem Size Used Avail Use% Mounted on
- 192.168.238.253:/nfstest
- 19G 8.6G 8.9G 50% /nfsclient
在lanv上创建user1、user2,加入到nfstest组里
- [root@lanv /]# groupadd nfstest;for name in user1 user2;do useradd -g nfstest $name;echo 123456|passwd --stdin $name;done
- Changing password for user user1.
- passwd: all authentication tokens updated successfully.
- Changing password for user user2.
- passwd: all authentication tokens updated successfully.
在server2上没有user1、user2和nfstest的账户,组信息,怎么使lanv服务器上只有这些账户能访问,并且项目组长能自由配置项目目录权限,要是能把项目目录的所有者设为项目组长,所有组设成nfstest就好了,然后只要权限设置成770,这样就只有这个项目组的人能访问,而且组长能灵活配置权限,临时给其他人开放权限。
其实很简单
- 查看user1、user2的UID,nfstest的GID
- user1:x:501:501::/home/user1:/bin/bash
- user2:x:502:501::/home/user2:/bin/bash
server2上虽然没有用户信息,但是可以强制把目录权限设置成不存在的UID和GID,这个权限信息到了lanv服务器上的时候就会匹配到lanv存在的用户信息
现在user1这个项目组长(目录所有者)就能自己配置目录权限了
- [root@lanv ~]# su - user2
- [user2@lanv ~]$ cd /nfsclient/
- [user2@lanv nfsclient]$ touch user2
- [root@lanv ~]# su - oracle
- [oracle@lanv ~]$ cd /nfsclient/
- -bash: cd: /nfsclient/: Permission denied
- [oracle@lanv ~]$
其实文件用户权限的配置很灵活,就看怎么配了
阅读(4836) | 评论(1) | 转发(0) |