*************************************

一、NFS网络文件系统简介

二、NFS工作原理图

三、NFS服务与RPC协议的关系

四、NFS服务的安装于配置

五、NFS客户端的配置

六、NFS访问权限的设定

*************************************

一、NFS网络文件系统简介

  NFS-Network FileSystem的缩写,NFS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享各自的文件NFS server也可以看作是一个文件服务器,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案文件MOUNT到自己的系统中,在客户端看来使用NFS的远端文件就象是在使用本地文件一样。


二、NFS工作原理图

详解NFS网络文件系统

三、NFS服务与RPC协议的关系

   nfs服务器开启的端口不确定(一定是在1024以下),所以客户端要想访问nfs时需要其他软件的协助,这就是远程过程调用(remote proceduce call)rpc协议。

RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的端口上去。 当服务器在启动 NFS 时会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS ,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口, 所以当然可以让 NFS 的启动更为轻松愉快了!

注意:

   要启动 NFS 之前,RPC 就要先启动了,否则 NFS 会无法向 RPC 注册。


四、NFS服务安装于配置

  安装NFS软件包

[[email protected] ~]# yum install nfs-utils -y


启动NFS服务

详解NFS网络文件系统

注释:

   mountd:管理NFS文件系统的挂载权限


NFS的主配置文件

/etc/exports

格式为:  export host(options)

Options:    

  • rw: 读写

  • ro:

  • secure: 默认已经启用;限制客户端只能使用小于1024的端口访问请求;若不加限制,则使用insecure

  • async: 异步写入,性能好,数据可靠性差;

  • sync: 同步写入,性能差,数据可靠性高;

  • wdelay: 写入延迟;no_wdelay

  • nohide: 不隐藏要导出的目录中挂载的其它nfs;

  • no_acl: 关闭nfs的acl功能;

  • root_squash: 压缩root权限, nfsnobody

  • no_root_squash: 不压缩root权限

  • all_squash:所有用户都压缩

  • anonuid=nfsuser,anongid=nfsgroup:使用指定的用户帐号做匿名用户帐号;


NFS服务端的配置

[[email protected] ~]# mkdir /dir
[[email protected] ~]# cp /etc/fstab /dir/
[[email protected] ~]# vim /etc/exports
/dir  172.16.0.0/16(rw)

注释:

   第4行:指定172.16.0.0/16网段的用户可以以读写的权限访问/dir目录


五、NFS客户端的配置

[[email protected] ~]# yum install showmount -y
[[email protected] ~]# showmount -e 172.16.10.1
Export list for 172.16.10.1:
/dir 172.16.0.0/16
[[email protected] ~]#
[[email protected] ~]# mount -t nfs 172.16.10.1:/dir /mnt
[[email protected] ~]# ll /mnt/
total 4
-rw-r--r--. 1 root root 779 Aug 14  2013 fstab
[[email protected] ~]#

注释:

   第2行:使用showmount -e NFSIP 查看NFS共享目录

注意:

    此时我们虽然以root身份挂载的,但是root没有建立文件的权限,root用户都没有权限,,这是为什么呢?,,因为root用户的权限的被压缩了。。下面我们说明一下NFS的权限。


六、NFS访问权限的设定

1、 客户端与主机端具有相同的 UID 与不同的账号:

详解NFS网络文件系统

详解NFS网络文件系统

使用Centos登录系统尝试去创建文件

详解NFS网络文件系统

权限拒绝了,,这是为什么呢。。我们查看NFS共享目录的权限

详解NFS网络文件系统

修改dir目录的权限,让Centos用户有写入的权限

详解NFS网络文件系统

客户端Centos用户在此创建文件,并在服务器查看Centos刚刚创建文件的属组,属主

详解NFS网络文件系统

详解NFS网络文件系统

总结:

  服务端与客户端显示的属主,属组不同,服务端Centos用户变成了jerry,jerry的uid与Centos的uid相同,说明了NFS完成用户UID映射。

2、 当客户端的身份为 root 时:

详解NFS网络文件系统

注意:

  默认NFS服务开启了(/etc/exports ) root_squash: 压缩root权限, 功能,如果还想继续使用使用root权限,则修改为

vim/etc/exports
/dir  172.16.0.0/16(rw,no_root_squash)
 no_root_squash: 不压缩root权限


NFS由于没有提供用户认证功能,所以我们可以将NFS与LDAP结合。NFS和LDAP的结合将在后期讲解,敬请期待。。。