Linux - 进阶 NFS 服务器 账户的映射问题 exportfs命令

 通过设置 主配置文件里的 映射方式 使得客户端访问服务端时, 文件对应的账户映射的对

象,有时是 nobody ,有时 是 root  有时也可以是普通用户; UID,GID 也还、可以改 ~!!

  定位服务端 : 

[root@server ~]# vim /etc/exports
/nfsfile        192.168.229.128/24(rw,sync,all_squash)

修改为
===>>>
/nfsfile        192.168.229.128/24(rw,sync,root_squash)

    我们 把前面的实验里稍微修改了一下, 把 映射账户里 all_squash  改为 root_squash

    ( 为本实验做准备 )  

     

     注意 : 

                 上示操作的背后,就隐藏一个小问题,我们刚才是对 配置文件 进行了修改,那修改完

                 后,会不会生效呢 ?? 

                 ===>>>

                         答案是不会的, 按照一般的常理,我们对配置文件进行了修改后,是需要重启服

                         务的( 或者就是,断开连接,重新连接上 ) 

                         但是,使其生效的方法也不是这样, 这里,是牵扯到挂载,所以,又有点不一样

                         我们在服务端对主配置文件进行了修改, 而之前呢( 之前的实验 ) 客户端已经将

                         服务端的远程目录挂载到本地了( 就代表着 客户端此时 正在使用服务端的远程目

                         录 ) 而你服务端现在把主配置文件修改了,那是不会生效的,因为客户端正在使

                         用这个主配置文件,所以是不能生效的~!!

                         

                         那咋办?? 按照常理推 

                         ===>>>

                         那就是客户端卸载掉,重新在挂载下,这样 修改了主配置文件,就会生效了 ~!!

                         但是呢 , 这太麻烦了,

                         所以就引入 了要讲的 命令 

                         ===>>>

                         exportfs   

                         该命令的作用就是  

                         ===>>>

                         修改了 主配置文件,但是有不需要卸载,直接就会使 主配置文件生效 ~!!

                         即 不卸载设备的情况下来更新配置文件使其生效 ~!!!!!

                         我们进行的操作就是       

[root@server ~]# exportfs -arv 
exporting 192.168.229.128/24:/nfsfile

                        我们待会儿再对 exportfs 命令进行讲解  

   定位客户端  : 

[root@node1 ~]# cd /nfsfile_khd/

[root@node1 nfsfile_khd]# ll
total 4
-rwxrwxrwx 1 root   root   15 Jul 11 00:45 readme
-rwxrwxrwx 1 nobody nobody  0 Jul 14 23:40 t1.txt

    上示,即 使用 root 账户访问共享目录时,新建的文件会被映射为 nobody 账户

    这里的新建文件就是 ( t1.txt ) 这是上个实验客户端所创建的文件~!!!

[root@node1 nfsfile_khd]# su rhce9

[rhce9@node1 nfsfile_khd]$ touch t2.txt
[rhce9@node1 nfsfile_khd]$ ll
total 4
-rwxrwxrwx 1 root   root   15 Jul 11 00:45 readme
-rwxrwxrwx 1 nobody nobody  0 Jul 14 23:40 t1.txt
-rw-rw-r-- 1 rhce9  rhce9   0 Jul 17 23:17 t2.txt

        这时,我们在客户端,切换成 普通用户 ( 即 从 root 用户 切换为 普通账户 rhce9 ) 

        我们以 普通账户 的身份 创建了一个文件 t2.txt 

        我们再使用 LL 命令,来查看下 账户的映射关系 

        这时,就发现 对于 t2.xtxt 文件来说 , 其文件会被映射成 rhce9 账户 

        即 当客户端以普通账户的身份访问共享目录时,所创建的文件被映射的账户就是 普通账

        户了 ~!

    

     客户端访问服务端,默认使用 服务端 的映射账户为 nobody 账户( UID 与 GID 为 65534 )

     可以修改映射 ID 值 , 实验如下 : 

   定位到服务端  : 

[root@server ~]# vim /etc/exports

/nfsfile        192.168.229.128/24(rw,sync,all_squash,anonuid=3000,anongid=3000)


[root@server ~]# exportfs -arv 
exporting 192.168.229.128/24:/nfsfile

      我们将 UID ,GID 进行了 修改,修改成我们想要指定的, 然后使用了 exportfs 进行生效

    定位客户端   : 

[rhce9@node1 nfsfile_khd]$ touch t3.txt 

[rhce9@node1 nfsfile_khd]$ ll
total 4
-rwxrwxrwx 1 root   root   15 Jul 11 00:45 readme
-rwxrwxrwx 1 nobody nobody  0 Jul 14 23:40 t1.txt
-rw-rw-r-- 1 rhce9  rhce9   0 Jul 17 23:17 t2.txt
-rw-rw-r-- 1   3000   3000  0 Jul 17 23:34 t3.txt

   定位客户端,我们创建一个新文件,此时使用 LL 命令 列出来,就可以看到我们新建的 t3.txt 文

   件其 账户映射即是  UID 和 GID 都是 3000 了~!

     :  虽然,我们可以自定义 UID 或 GID ,但是建议 NFS 服务端 与  客户端 的UID 和 GID 最

              好相同。  

        

    exportfs 命令  

       作用 :  在服务端上修改了 NFS 配置参数,此时需要重启服务,若此时客户端已经挂载,且

                     正在读写文件,若重启服务则会对数据产生影响,使用 exportfs 命令可以使得不用重

                     启服务,不用卸载设备,即可重新加载 NFS 的配置文件使其生效 

       格式 :  exportfs   -参数 

参数 作用
-a  全部挂载
-r 重新挂载
-u 卸载指定目录
-v 显示已经共享目录 

                     常用命令 :  exportfs     -arv 

你可能感兴趣的:(Linux,进阶,linux,运维,服务器)