欲实现的功能:

    实现当多台NFS客户机挂载同一台NFS服务器时,每台客户机都能对共享文件进行读写操作。


解决思路:

    让所有NFS客户端写入到NFS Server的目录或文件在NFS Server上的用户和组都是同一个名称(nfs-test)。老表用一台服务器(nfs-server)和两台客户机(nfs-client001和nfs-client002)进行测试。


实施和测试:

    1.创建一个NFS共享用户(nfs-test),并且所有机器的UID和GID都一样。

     a.在nfs-server上:useradd -u 555 nfs-test。创建后用id nfs-test查看。

wKioL1gFo3-xSDr1AAAlW8LVkCo271.png

      可用groupmod -g 更改gid:

wKioL1gFpFrRlJOJAAA8vQm_WcU602.png

     b.在nfs-client上:和上边方法一样。

    

    2.配置/etc/exports文件:vim /etc/exports

     配置内容如下:

     /share 192.168.1.0/24(rw,sync,all_squash,anonuid=555,anongid=555)

     内容解释:

        all_squash:保证所有用户都能压缩成一个用户。

        anonuid=555anongid=555:指定每个用户下都有并且存在的。

    3.平滑重启nfs服务生效:/etc/init.d/nfs-kernel-server reload

wKiom1gFppSzFngSAAA35tz2d1Q745.png

      注意:上边是ubuntu下的重启,在CentOS下命令为:/etc/init.d/nfs reload

         启动之后用showmount -e ServerIP检查。

wKioL1gFp33hG-IaAABEI4UUZdQ318.png

    4.在客户端挂载:mount -t nfs 192.168.1.103:/share /mnt

wKiom1gFsaHSAfsHAAA43xYyeTs193.png

     在nfs-client002上挂载和上边的方式是一样的。

    5.测试

     a.在nfs-server上查看/share目录权限:ls -ld /share

wKiom1gFs22AnHfgAAAzYV7aT-I226.png

      当此目录的权限为上图中所示和属主是root时测试如下:

wKioL1gFtGCyA6s3AAAJMXbe8gg831.png

wKiom1gFtGDx8awkAAAJkRv93EI752.png

      因为在前边配置/etc/exports文件时配置内容如下:

       /share 192.168.1.0/24(rw,sync,all_squash,anonuid=555,anongid=555)

       解析:/share这个共享目录可以被属主为555的所有用户使用,但是现在的/share属主为root,不是nfs-test,且nfs-test的属主为555。所以这里操作时提示为权限不够。所以需要修改nfs-test的属主。

     b.修改nfs-test的属主:chown -R nfs-test.nfs-test /share/

wKioL1gFtvDQ8I46AAB81JwV9cs617.png

      修改后测试:

wKioL1gFuLLzjDgBAAAKuyY0VWU795.png

wKioL1gFuLPh_Ko_AAAK4Y4xkdI655.png


总结:

    1.注意共享目录或文件的属主,要将共享目录或文件的属主修改为服务器和客户机同UID的属主才可实现功能。

    2.http://12058118.blog.51cto.com/12048118/1862781