NFS:实现不同网络,不同系统之间文件的共享<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

软件包: nfs-util  被做进内核 不需要安装

进程: nfsd内核线程,lockd 内核线程, rpc.mountdrpc.statd 文件加锁,rpc.quotad 应用磁盘配额

       ps aux 可以查看到nfsd lockd

脚本: nfs

       nfslock 客户端一般自动启动,做锁恢复

端口:  tcp/249 udp/2049

配置文件:/etc/exports     主配置文件

          /etc/sysconfig/nfs 辅助配置文件

 

格式:共享目录    ip 或主机名(选项)

       /share  192.168.0.0/255.255.255.0(rw)

       选项:

              rw   读写挂载

              ro   自读挂载

              async       异步写入

              sync        同步写入

              root_squash     root访问时转换成nfs的匿名用户即nobody用户,防止root用户具有过高权限

                            用户uid一样出问题

              no_root_squash  不转换

              all_squash      所有的转换

       客户端参数:       ip网络:长短格式都支持 192.168.0.0/24 192.168.0.0/255.255.255.0

                     域: *.example.com

                     单个主机:192.168.0.1

                     netgroup NIS @group

 

       客户端:查看共享目录

                      showmount -e 192.168.0.65(nfs服务器的ip)

       服务端: showmount -a

                   -d 只显示哪个目录被客户端挂载了

 

额外命令:

exportefs 不用重启服务也可导出共享目录

          -a 导出所有目录 r (重新导出)连用,不与a连用 后跟导出的目录

          -u 取消导出

          -v 显示详细信息

 

 

 

客户端访问被服务端导出的目录方式:

       1 /etc/fstab 自动挂载

       2  /etc/init.d/netfs脚本

       3   autofs

       4   手动挂载

 

NFS工作:rpc.mounted NFSv3

       NFS共享:基于rpc工作

       提供rpc服务 远程

       service portmap  status 状态 要开启

       rpc是否工作正常 rpcinfo -p 服务器ip 查看服务器的状态

                   rpcinfo -p 192.168.0.254

                       rpcinfo -p localhost  看本地的

      

导出目录的安全准则:

              不要导出服务端的服务目录

              一般导出整个文件系统 不要是目录

              不要使用 no_root_squash参数

              谨慎使用crossmnt nohide

                     crossmnt 添加该参数 一个文件系统被导出 如果它的子目录也被导出的时候 用户是可以看                                     见访问的 较为危险

                     nohide 挂载的子目录,其父目录被挂载时 用户是可见的 hecrossmnt作用相似

NFS的缺陷:

              1、辅助性的协议端口是随机的

              2、客户端认证时基于ip和主机名的 不是用户名 不条件信任的

              3NFS时明文的 对数据完整性不作认证

              4、管理麻烦

       针对1的解决方法:

              使用固定端口 手动定义

              /etc/sysconfig/nfs 配置固定端口 不能和其他冲突

              查看端口是否在使用: grep 4004 /etc/services

 

查看NFS分享的资源

       showmount -e 192.168.0.254 查看对方服务器共享的资源

       mount 192.168.0.254:/var/ftp/pub /mnt/ji  可以直接使用

NFSselinuxbool

              nfs_export_all_ro 默认开启

              nfs_export_all_rw 默认开启

              use_nfs_home_nfs 开启家目录的

             

自动挂载:

/etc/fstab

192.168.0.254:/var/ftp/pub   /mnt/ji   nfs  defaults  0 0

      

automounter:自动挂载工具

service autofs status 要开启

直接挂载 :手动指定挂载位置

       vim /etc/auto.master

             /-   /etc/auto.pub

       vim /etc/auto.pub 

            /pub(该目录要存在) -rw,soft 192.168.0.254:/var/ftp/pub 

       mkdir /pub

       重启用autofs服务

直接挂载本地设备

       vim /etc/auto.master

       /-   /etc/auto.pub

       Vim /etc/auto.pub

       /media/cdrom  -fstype=iso9660,ro,soft :/dev/cdrom

       重启autofs 服务

间接挂载: 挂载目录不是绝对路径() 目录也可不存在

 

vim /etc/auto.master

/share  /etc/auto.pub

vim /etc/auto.pub

pub(该目录在share目录下不存在) -rw,soft 192.168.0.254:/var/ftp/pub 

    -intr 可以中断挂载

    -soft 挂载时若挂载不上会自动显示返回错误信息 -hard 一般不常用但是默认选项,可以与intr连用

    -nouser 只允许管理员挂载

   连用两个参数用逗号隔开

   -rw-inrt

 

使用通配符自动挂载 简介挂载服务器某目录下的所有子目录

/etc/auto.master配置

/home/guests  /etc/auto.home

 

  vim /etc/auto.home 

  * -rw.soft 192.1680.254:/hoem/guests/& (&表示子目录都单独挂载过来)

在测试时由于是用户的家目录所以不显示