网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。

  在NFS中文件的权限:文件系统权限, 共享权限
在linux上识别用户不是靠用户名而是靠UID识别的
除了root其他用户都可以在其他主机上映射,root会不识别。映射就是在不同主机上,使用的UID相同
NFS是SUN公司开发的基于RPC的服务,remote procedure call
nfs靠rpc提供服务,获取随即端口

portmap 提供RPC服务
软件包:nfs-utils
Daemons进程:nfsd ,rpc.mountd 身份验证 rc.lockd 实现文件的锁进制,第一个用户可以写,其他用户只可以读  rpc.statd   rpc.quotad
启动脚本:nfs (nfsd,rpc.mountd,rpc.quotad)
nfslock(rpc.lockd,rpc.statd)
端口:tcp2049  udp 2049
NFS配置文件:
主配置文件:/etc/exports
次配置文件:/etc/sysconfig/nfs 可以静态指定端口

版本:nfs1 内部使用  NFS2   NFSv3 (目前主要使用)  NFSv4

NFS只能共享目录

    以root 身份登陆Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。

    执行如下命令编辑文件/etc/exports:

   # vi /etc/exports

   在该文件里添加如下内容:

   /home/work 192.168.0.*(rw,sync,no_root_squash)

   然后保存退出。

   添加的内容表示:允许ip 地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。

   /home/work 也称为服务器输出共享目录。

   括号内的参数意义描述如下:

   rw:读/写权限,只读权限的参数为ro;

   sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
 
   no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

   接着执行如下命令,启动端口映射:

   # /etc/rc.d/init.d/portmap start

   最后执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求:

   # /etc/rc.d/init.d/NFS start

   用户也可以重新启动Linux 服务器,自动启动NFS 服务。


   我们首先在Linux 服务器上进行NFS 服务器的回环测试,验证共享目录是否能够被访问。在Linux 服务器上运行如下命令:
 
   # mount –t NFS 192.168.0.20:/home/work /mnt

   # ls /mnt

   命令将Linux 服务器的NFS 输出共享目录挂载到/mnt 目录下,因此,如果NFS 正常工作,应该能够在/mnt 目录看到/home/work 共享目录中的内容。
nfs 的重新挂载
exportfs -a 全部挂载(卸载) /etc/exports内的设置
-r挂载
-u卸载
-v 显示过程