NFS:Network File System 网络文件系统,也是一种文件传输协议,NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件
NFS只支持主机的认证,无法识别用户名,只是识别来访问文件系统主机的ID号

 NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行

NFS好处:
  1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
  2.用户不必在每个网络上机器里头都有一个home目录。Home目录 可以被放在NFS服务器上并且在网络上处处可用。
  3.诸如软驱,CDROM,和 Zip(是指一种高储存密度的磁盘驱动器与磁盘)之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。

NIS 网络信息系统,软件包的名字叫 yp   配置文件在 /etc/yp.conf
  在Unix网络中实现用户身份认证的集中实现的,也可以说是集中用户身份认证的实现,只能在内网中使用
   为了加强NFS的安全性通常NFS和NIS一块工作,不过还是不安全,因为认证过程中用户的ID和用户名都是用明文传送的,因此只能用在内网中

Kerberos的认证能够解决上述的问题:为其他的应用程序提供可靠的安全的集中认证机制

NFS共享文件系统中一定不能够使用root 用户共享文件系统

root_spuash: nfsnobody
任何用户一旦使用root用户访问,都会映射成为本机上的nobody 用户,权限非常小,几乎上没有什么权限,类似于Windows上面的guest用户


 

 portmap:在启动任何一个RPC程序之前,需要做好端口映射(port mapping)工作,这个工作是由portmap负责的。再启动任何一个RPC Server之前,我们都需要启动portmap

权限:
用户访问文件系统的权限是文件系统权限与共享权限的交集

NFS依赖于RPC (远程过程调用)
需要安装的软件有:nfs-utils NFS主程序
 portmap RPC主程序


 NFS文件读的过程是共享的,写的过程是独占的,别人无法读
文件锁:
共享锁,s1在读,当S2也能够读,不过,如果S2来写就必须排队,等S1读完,S2才能够写


RPC服务工作在UDP和TCP的111端口上
  查看 rpcinfo -p
rpcinfo -p 172.16.100.2 查看某个主机上RPC的工作信息

vim /etc/exports
---------------------------------------------
/vhosts         172.16.0.0/16(rw)

如果目录像 a b 这样的中间有空格必须使用引号“a b”
---------------------------------------------
ro 只读权限
rw 读写权限
async 数据先暂存于内存中,而非直接写入硬盘
sync 数据同步写入到内存和硬盘中
root_squash 登录NFS主机使用的共享目录用户是            root身份,那么这个用户的权限将被压            缩为匿名用户,通常他的UID和GID都会           成nobody(nfsnobody)那个系统账号的身份

no_root_squash    登录NFS主机使用的共享目录用户               是 root身份,那么对于这个共享目录             来说,它就具有root的权限
all_squash 不论登入NFS的用户身份如何,他的身份都会被压缩为匿名用户即nobody

  异步比同步快,但异步不安全


showmount 用于查看主机上的所有的共享的文件系统
-a  all 并指定服务器地址,显示该服务器上对应的哪个文件系统被挂载使用了
eg : showmount -a 172.16.100.1
-d   directories用户显示当前主机上共享的文件系统哪个目录被人挂载了
eg: showmount -d 172.16.100.1
-e    exports 查看对应的服务器上共享的有哪些文件系统
   eg; showmount -e 172.16.100.1


nfs文件系统的挂载:
  mount -t nfs  172.16.100.1:/vhosts /mnt/nfs
        -t 文件系统类型
172.16.100.1:/vhosts 挂载的文件系统
/mnt/nfs 挂载点

#service nfs start 启动NFS文件系统

进行NFS文件挂载必须关闭selinux

如果挂载的:件系统正在被人使用,但是被修改了,我们使用exportfs 命令,不能重启NFS服务
  
 exportfs 用于维护 /etc/exports 所定义的文件系统列表
-a对所有文件系统进行操作,通常与r u v            一块使用
-r 重新导出所有的目录
-u 关闭导出的目录
-v 详细信息
 eg:exportfs -rv /mydata/