13.4 案例演练

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


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

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


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

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

首先,就是要建立 /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)>

再来,就是要建立每个对应的目录的实际 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>

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

重新启动 nfs 服务:

[root@www ~]# /etc/init.d/nfs restart>

在 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>

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


13.5 重点回顾

  • Network FileSystem (NFS) 可以让主机之间透过网络分享彼此的档案与目录;
  • NFS 主要是透过 RPC 来进行 file share 的目的,所以 Server 与 Client 的 RPC 一定要启动才行!
  • NFS 的配置文件就是 /etc/exports 这个档案;
  • NFS 的权限可以观察 /var/lib/nfs/etab,至于的重要登录档可以参考 /var/lib/nfs/xtab 这个档案,还包含相当多有用的信息在其中!
  • NFS 服务器与客户端的使用者账号名称、UID 最好要一致,可以避免权限错乱:
  • NFS 服务器预设对客户端的 root 进行权限压缩,通常压缩其成为 nfsnobody 或 nobody。
  • NFS 服务器在更动 /etc/exports 这个档案之后,可以透过 exportfs 这个指令来重新挂载分享的目录!
  • 可以使用 rpcinfo 来观察 RPC program 之间的关系!!!
  • NFS 服务器在设定之初,就必须要考虑到 client 端登入的权限问题,很多时候无法写入或者无法进行分享,主要是 Linux 实体档案的权限设定问题所致!
  • NFS 客户端可以透过使用 showmount, mount 与 umount 来使用 NFS 主机提供的分享的目录!
  • NFS 亦可以使用挂载参数,如 bg, soft, rsize, wsize, nosuid, noexec, nodev 等参数, 来达到保护自己文件系统的目标!
  • 自动挂载的 autofs 服务可以在客户端需要 NFS 服务器提供的资源时才挂载。

郑重声明:

1 本资源来源于互联网,资源的版权归资源原作者所持有,受《中华人民共和国著作权法》等相关法律保护。

2 由于无法和原作者取得联系,所以上传的部分资源无法先通过原作者的同意就分享给大家了,如本资源侵犯了您(原作者)的权益,请联系我们(微信号 xiaohaimei1989),我们会立马删除您的资源,并向您表达诚挚的歉意!

3 本站是一个公益型网站,分享资源的目的在于传播知识,分享知识,收取一点点打赏的辛苦费是用于网站的日常运营开支,并非用于商业用途。

4 本站资源只提供学习和参考研究使用,使用过后请在第一时间内删除。本站不承担资源被单位或个人商用带来的法律责任。

发表评论