Chinaunix首页 | 论坛 | 博客
  • 博客访问: 297087
  • 博文数量: 25
  • 博客积分: 496
  • 博客等级: 下士
  • 技术积分: 815
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-01 11:18
文章分类
文章存档

2014年(2)

2013年(6)

2012年(17)

分类: LINUX

2012-07-20 10:49:12

    nfs权限的常规配置就不说了,网上都有,下面说下我在工作中遇到的一个特别的需求,特别的方法
 
    环境需求:目前开发环境有两个,大环境有nis,nfs,autofs,都没有问题;小环境有一台服务器单独连一台存储,有独立的账户信息,有一个项目需要在大环境中,访问小环境存储上的项目数据,要求只有项目组成员才能访问项目数据,并且项目目录的权限由项目组长自由配置,小环境中不能创建这个项目组成员的账户。
    下面用虚拟机测试我的方法:

nfs

Hostname

ip

Server

server2

192.168.238.253

Client

Lanv

192.168.238.99


  1. [root@server2 nfstest]# showmount -e
  2. Export list for server2.lanv.com:
  3. /nfstest 192.168.238.0/24

  1. [root@lanv /]# df -h /nfsclient/
  2. Filesystem Size Used Avail Use% Mounted on
  3. 192.168.238.253:/nfstest
  4. 19G 8.6G 8.9G 50% /nfsclient
在lanv上创建user1、user2,加入到nfstest组里

  1. [root@lanv /]# groupadd nfstest;for name in user1 user2;do useradd -g nfstest $name;echo 123456|passwd --stdin $name;done
  2. Changing password for user user1.
  3. passwd: all authentication tokens updated successfully.
  4. Changing password for user user2.
  5. passwd: all authentication tokens updated successfully.
在server2上没有user1、user2和nfstest的账户,组信息,怎么使lanv服务器上只有这些账户能访问,并且项目组长能自由配置项目目录权限,要是能把项目目录的所有者设为项目组长,所有组设成nfstest就好了,然后只要权限设置成770,这样就只有这个项目组的人能访问,而且组长能灵活配置权限,临时给其他人开放权限。
    其实很简单

  1. 查看user1、user2的UID,nfstest的GID
  2. user1:x:501:501::/home/user1:/bin/bash
  3. user2:x:502:501::/home/user2:/bin/bash
server2上虽然没有用户信息,但是可以强制把目录权限设置成不存在的UID和GID,这个权限信息到了lanv服务器上的时候就会匹配到lanv存在的用户信息
 
现在user1这个项目组长(目录所有者)就能自己配置目录权限了
 

  1. [root@lanv ~]# su - user2
  2. [user2@lanv ~]$ cd /nfsclient/
  3. [user2@lanv nfsclient]$ touch user2
  4. [root@lanv ~]# su - oracle
  5. [oracle@lanv ~]$ cd /nfsclient/
  6. -bash: cd: /nfsclient/: Permission denied
  7. [oracle@lanv ~]$

其实文件用户权限的配置很灵活,就看怎么配了





阅读(3346) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

exitgogo2012-08-07 19:52:16

本文的特色是真实环境下的应用需求,作者讲述方法非常详细,浅显易懂,这是值得推荐的!