13.4 案例演练

让我们来做个实际演练,在练习之前,请将服务器的 NFS 设定数据都清除,但是保留 rpcbind 不可关闭。至于客户端的环境下, 先关闭 autofs 以及取消之前在 /etc/rc.d/rc.local 里面写入的开机自动挂载项目。同时删除 /home/nfs 目录呦! 接下来请看看我们要处理的环境为何:


模拟的环境状态中,服务器端的想法如下:

  1. 假设服务器的 IP 为 192.168.100.254 这一部;
  2. /tmp 分享为可擦写,并且不限制使用者身份的方式,分享给所有 192.168.100.0/24 这个网域中的所有计算机;
  3. /home/nfs 分享的属性为只读,可提供除了网域内的工作站外,向 Internet 亦提供数据内容;
  4. /home/upload 做为 192.168.100.0/24 这个网域的数据上传目录,其中,这个 /home/upload 的使用者及所属群组为 nfs-upload 这个名字,他的 UID 与 GID 均为 210;
  5. /home/andy 这个目录仅分享给 192.168.100.10 这部主机,以提供该主机上面 andy 这个使用者来使用,也就是说, andy 在 192.168.100.10 及 192.168.100.254 均有账号,且账号均为 andy ,所以预计开放 /home/andy 给 andy 使用他的家目录啦!

服务器端设定的实地演练:

好了,那么请你先不要看底下的答案,先自己动笔或者直接在自己的机器上面动手作作看,等到得到你要的答案之后, 再看底下的说明吧!

  1. 首先,就是要建立 /etc/exports 这个档案的内容啰,你可以这样写吧!

    [root@www ~]# vim /etc/exports
    /tmp         192.168.100.0/24(rw,no_root_squash)
    /home/nfs    192.168.100.0/24(ro)  *(ro,all_squash)
    /home/upload 192.168.100.0/24(rw,all_squash,anonuid=210,anongid=210)
    /home/andy   192.168.100.10(rw)
    
  2. 再来,就是要建立每个对应的目录的实际 Linux 权限了!我们一个一个来看:

    # 1\. /tmp
    [root@www ~]# ll -d /tmp
    drwxrwxrwt. 12 root root 4096 2011-07-27 23:49 /tmp
    
    # 2\. /home/nfs
    [root@www ~]# mkdir -p /home/nfs
    [root@www ~]# chmod 755 -R /home/nfs
    # 修改较为严格的档案权限将目录与档案设定成只读!不能写入的状态,会更保险一点!
    
    # 3\. /home/upload
    [root@www ~]# groupadd -g 210 nfs-upload
    [root@www ~]# useradd -g 210 -u 210 -M nfs-upload
    # 先建立对应的账号与组名及 UID 喔!
    [root@www ~]# mkdir -p /home/upload
    [root@www ~]# chown -R nfs-upload:nfs-upload /home/upload
    # 修改拥有者!如此,则用户与目录的权限都设定妥当啰!
    
    # 4\. /home/andy
    [root@www ~]# useradd andy
    [root@www ~]# ll -d /home/andy
    drwx------. 4 andy andy 4096 2011-07-28 00:15 /home/andy
    

    这样子一来,权限的问题大概就可以解决啰!

  3. 重新启动 nfs 服务:

    [root@www ~]# /etc/init.d/nfs restart
    
  4. 在 192.168.100.10 这部机器上面演练一下:

    # 1\. 确认远程服务器的可用目录:
    [root@clientlinux ~]# showmount -e 192.168.100.254
    Export list for 192.168.100.254:
    /home/andy   192.168.100.10
    /home/upload 192.168.100.0/24
    /home/nfs    (everyone)
    /tmp         192.168.100.0/24
    
    # 2\. 建立挂载点:
    [root@clientlinux ~]# mkdir -p /mnt/{tmp,nfs,upload,andy}
    
    # 3\. 实际挂载:
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/tmp         /mnt/tmp
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/home/nfs    /mnt/nfs
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/home/upload /mnt/upload
    [root@clientlinux ~]# mount -t nfs 192.168.100.254:/home/andy   /mnt/andy
    

整个步骤大致上就是这样吶!加油喔!