• linux基础之NFS


    一、NFS简介

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。

    在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。一般被用于linux to linux间

    的文件共享。

    二、NFS安装

    1、查看是否安装

    使用命令rpm -qa | grep nfs-*查看系统是否已经安装有NFS软件,如显示如下图则证明已经安装NFS,若执行命令无返回值则证明尚未安装NFS。

    2、NFS安装

    直接yum安装比较简单直接一条命令搞定。命令:yum install -y nfs-utils rpcbind。

    3、启动命令

    启动服务:/etc/init.d/rpcbind   start,/etc/init.d/nfs start

    开机自启动:chkconfig rpcbind on,chkconfig nfs on

    三、配置服务

    1、服务端配置

    进入配置文件vim /etc/exports 

    配置一:/test    *(ro)               --任何ip地址都能访问,但是权限为只读。

    配置二:/test    192.168.1.0/24(ro)           --指定网段的地址都能访问,但是权限为只读。

    配置三:/test 192.168.1.11(ro) 192.168.1.12(rw)   --第一个ip地址拥有只读权限,第二个ip地址拥有读写权限。

    2、客户端访问

     mount 192.168.1.82:/test /mnt           --客户端要访问nfs,就是远程挂载过来。

    3、常见参数

    rw:是可读写

    ro:是只读

    sync:同步模式,表示内存中的数据时时刻刻写入磁盘(async:非同步模式,内存中数据定期存入磁盘)

    all_squash:表示不管使用NFS的用户是谁,其身份都会被限定为一个指定的普通用户身份。

    no_root_squash:其他客户端主机的root用户对该目录有至高权限控制。

    root_squash:表示其他客户端主机的root用户对该目录有普通用户权限控制。

    anonuid/anongid:要和root_squash或all_squash选项一同使用,表示指定使用NFS的用户被限定后的

    uid和gid,前提是本图片服务器的/etc/passwd中存在这一的uid和gid。

    no_subtree_check:不检查父目录的权限

    四、常见问题

    1、客户端挂载后,挂载的目录权限还是原来的权限吗?

    答:不是,它的权限是nfs服务端的挂载目录的权限。

    2、客户端访问挂载的目录,它是以什么样的身份去访问,这个身份用户是客户端的还是服务端的?

    答:nfs客户端默认是以nfsnobody的身份去访问,这个身份是服务端的,哪怕你客户端使用root用户,访问时还是用的nfsnobody的身份。

    3、我把nfs服务端的ro参数换成rw,客户端挂载后能写吗?

    答:还是不能写,因为服务配置rw只表示服务允许写,但系统权限还是不允许。

    解决方案:

    案一:在nfs服务端chmod o+w /test,给一个写权限,客户端重新挂载,再写,也可以看到写的文件的owner和group为nfsnobody

    案二:改客户端访问的身份
     vim /etc/exports
    /test *(rw,no_root_squash) --加一个no_root_squash表示让客户端以root的身份来访问服务端

    vim /etc/exports
    /test *(rw,anonuid=501,anongid=501) --指定客户端以501这个uid和gid的身份来访问我

    4、showmount -e 10.1.1.10时,户端报“clnt_create: RPC: Port mapper failure - Unable to receive: errno 111 (Connection refused) RPC remote produre call”错误?

    答:导致该错误是由于rpcbind服务未开启。远程程序调用,无法使用的端口111。因此使用/etc/init.d/rpcbind start命令即可。

    五、简化挂载

    1、方法

    法一:/etc/fstab   --开机自动挂载。若服务端关机,而客户端没有做umount操作,那么你的挂载命令会被卡死。
    法二:/etc/rc.local  --开机自动挂载。若服务端关机,而客户端没有做umount操作,那么你的挂载命令会被卡死。
    法三:做别名  · --在客户端做别名,客户端不需要每次操作都输入长长的命令,使操作更简单。
    法四:autofs     --在使用场景中比较常见。

    2、实现

    假设需要把服务端(192.168.1.82)的/share/soft目录挂载到客户端的/share/soft目录。

    客户端步骤:

    步骤一:在客户端建立share目录。mkdir /share

    步骤二:修改配置文件。进入配置文件:vim /etc/auto.master,增加/share  /etc/auto.share

    步骤三:建立配置文件并增加配置。手动建立:vim /etc/auto.share,增加 soft - 10.1.1.10:/share/soft

    步骤四:重启服务。重启命令/etc/init.d/autofs restart

  • 相关阅读:
    我知道点redis-数据结构与对象
    白帽子-第十四章 PHP安全
    白帽子-第二篇 客户端脚本安全
    网络编程
    inline的作用
    Windows静态库和动态库区别
    简单实现图片上传预览
    Java 通用正则表达式
    C#+Mysql 图片数据存储
    FileUpload转换为字节
  • 原文地址:https://www.cnblogs.com/kowloon/p/8191872.html
Copyright © 2020-2023  润新知