• NFS与AutoNFS实例


    NFS概述:

    NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

    安装NFS(在sishen_63上面)

    [root@sishen_63 ~]# yum install -y nfs-utils

    启动NFS

    [root@sishen_63 ~]# service nfs start
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    Starting RPC idmapd:                                       [  OK  ]

    查看端口

    [root@sishen_63 ~]# netstat -antup | grep 2049
    tcp        0      0 0.0.0.0:2049                0.0.0.0:*                   LISTEN      -                  
    tcp        0      0 :::2049                     :::*                        LISTEN      -                  
    udp        0      0 0.0.0.0:2049                0.0.0.0:*                               -                  
    udp        0      0 :::2049                     :::*                                    - 

    设置开机自动起的话使用chkconfig nfs on这条命令。

    设置测试目录

    [root@sishen_63 ~]# vim /etc/exports

    /tmp *(rw)

    [root@sishen_63 ~]# service nfs restart

    客户端查看(在sishen_64上)

    image

    测试客户端访问权限

    [root@sishen_64 opt]# touch sishen_64.txt  注意看红色字体
    [root@sishen_64 opt]# ll
    total 70636
    drwx------ 2 root      root          4096 Sep 12 18:07 keyring-GhLJxt
    drwx------ 2 gdm       gdm           4096 Sep 12 18:07 orbit-gdm
    drwx------ 2 root      root          4096 Sep 12 18:11 orbit-root
    drwx------ 2 root      root          4096 Sep 12 18:07 pulse-GF9xIQtH3K7r
    drwx------ 2 gdm       gdm           4096 Sep 12 18:08 pulse-KrvunjvNzMZC
    -rw-r--r-- 1 nfsnobody nfsnobody        0 Sep 12 20:11 sishen_64.txt
    -rw-r--r-- 1 root      root         10795 Sep 12 18:06 vgauthsvclog.txt.0
    drwx------ 2 root      root          4096 Sep 12 15:47 virtual-root.GbNb3n
    drwx------ 2 root      root          4096 Sep 12 18:07 virtual-root.GMsPxq
    drwx------ 2 root      root          4096 Sep 12 15:04 virtual-root.moiJHi
    drwxrwxrwt 2 root      root          4096 Jun 19  2016 VMwareDnD
    drwx------ 2 root      root          4096 Sep 12 18:07 vmware-root
    -r--r--r-- 1 root      root      72270857 Jun 20  2016 VMwareTools-10.0.5-3228253.tar.gz

    其他测试

    创建共享目录

    [root@sishen_63 ~]# mkdir -p /share/{aa,bb,cc,dd,ee,ff}

    [root@sishen_63 ~]# ll /share/
    total 24
    drwxr-xr-x 2 root root 4096 Sep 12 22:58 aa
    drwxr-xr-x 2 root root 4096 Sep 12 22:58 bb
    drwxr-xr-x 2 root root 4096 Sep 12 22:58 cc
    drwxr-xr-x 2 root root 4096 Sep 12 22:58 dd
    drwxr-xr-x 2 root root 4096 Sep 12 22:58 ee
    drwxr-xr-x 2 root root 4096 Sep 12 23:00 ff

    修改配置文件

    /tmp *(rw)  
    /share/aa  *(rw,no_root_squash)  
    /share/bb  192.168.1.0/24(rw,sync)
    /share/cc  192.168.1.64(ro)
    /share/dd  *.baidu.com(rw,all_squash,anonuid=500,anongid=500)
    /share/ee  192.168.2.0/24(async) 192.168.3.0/24(rw)
    /share/ff  *(rw,root_squash)

    sync/async  数据同步写入硬盘/不同步写入在内存中缓存

    root_squash 压制root,如果用root登录,使其身份自动切换成nfsnobody

    no_root_squash 不压制root ,如果是root登录nfs,身份就是root

    更改/share目录权限

    [root@sishen_63 ~]# ll -d /share/
    drwxr-xr-x 8 root root 4096 Sep 12 23:00 /share/
    [root@sishen_63 ~]# chmod 777 -R /share/
    [root@sishen_63 ~]# ll -d /share/
    drwxrwxrwx 8 root root 4096 Sep 12 23:00 /share/

    重启nfs服务

    [root@sishen_63 ~]# service nfs restart

    客户端验证

    [root@sishen_64 ~]# showmount -e 192.168.1.63
    Export list for 192.168.1.63:
    /share/ff *
    /share/aa *
    /tmp      *
    /share/dd *.baidu.com
    /share/ee 192.168.3.0/24,192.168.2.0/24
    /share/cc 192.168.1.64
    /share/bb 192.168.1.0/24

    image

    被拒绝了,没有权限

    去服务端更改配置文件,然后重启nfs服务后再来测试

    修改内容

    将 /share/dd  *.baidu.com(rw,all_squash,anonuid=500,anongid=500)

    改为  /share/dd  *(rw,all_squash,anonuid=500,anongid=500)

    image

    挂载成功!

    测试文件权限

    image

    挂载其他目录,ee目录由于服务端限制,所以挂载会出错。

    image

    查看挂载目录

    image

    添加普通用户

    image

    使用root和sishen用户登录,创建并对比文件权限

    image

    因为aa目录不压制root用户,所以aa.txt的所有者还是root,但是注意普通用户是nobody。

    切换到cc目录下,使用sishen用户创建文件失败,因为该目录为只读

    image

    切换到root用户去创建,仍然失败,因为该目录权限对所有用户为只读

    image

    切换到ff目录下,分别使用root和sishen用户创建文件,并查看文件权限

    image

    因为ff目录压制root,所以root身份映射成nfsnobody。

    配置自动挂载

    需要在客户端编辑/etc/fstab文件,内容格式为:

    192.168.1.63:/share/aa  /share/aa               nfs     defaults        0 0

    保存退出,重启客户端操作系统验证。

    AutoNFS

    [root@sishen_63 ~]# yum install -y autofs

    客户端创建测试共享测试目录

    [root@sishen_64 ~]# mkdir /tmp/{a,root_squash,no_root_squash,all_squash}

    服务端修改配置文件,大约在第7行左右,/misc下面添加如下内容

    [root@sishen_63 ~]# vim /etc/auto.master

    /tmp/a    /etc/auto.nfs --timeout=60
    /tmp/all_squash /etc/auto.nfs   --time=60
    /tmp/root_squash /etc/auto.nfs  --time=60
    /tmp/no_root_squash /etc/auto.nfs --time=60

    注意:红色字体是挂载到本地时目录的名字

    [root@sishen_63 ~]# vim /etc/auto.nfs

    /tmp/a          -fstype=nfs     192.168.1.64:/tmp/a
    root_squash     -fstype=nfs     192.168.1.64:/tmp/root_squash
    no_root_squash  -fstype=nfs     192.168.1.64:/tmp/no_root_squash
    all_squash      -fstype=nfs     192.168.1.64:/tmp/all_squash

    注意:红色字体名字自己定义即可,没有特殊要求

    服务端重启autofs服务

    [root@sishen_63 ~]# service autofs restart
    Stopping automount:                                        [  OK  ]
    Starting automount:                                        [  OK  ]

    首次访问共享目录,需要手动切进去,之后就不需要了,如下

    [root@sishen_63 ~]# cd /tmp/a
    [root@sishen_63 a]# touch sishen_63.test  #创建文件失败,因为没有给权限
    touch: cannot touch `sishen_63.test': Permission denied

    [root@sishen_63 ~]# cd /tmp/all_squash
    [root@sishen_63 all_squash]# cd ..
    [root@sishen_63 tmp]# cd root_squash

    为了验证共享目录是sishen_64上的,我们可以停掉autofs服务,查看。

    [root@sishen_63 tmp]# service autofs stop
    Stopping automount:                                        [  OK  ]
    [root@sishen_63 tmp]# cd a
    -bash: cd: a: No such file or directory
    [root@sishen_63 tmp]# cd root_squash
    -bash: cd: root_squash: No such file or directory

    由此可见,以上4个目录均是sishen_64上的。

    到此,搞一小段,之后会做出其他相应的服务。欢迎各位读者大佬批评指正~~~

  • 相关阅读:
    MSComm控件进行串口编程的基本步骤(转载)
    Linux C Socket编程原理及简单实例(转载)
    ubuntu14.04英文环境下安装中文输入法(转载)
    2015高工机器人年会第一批100名参会嘉宾名单公布
    中国式人机协作
    优傲机器人:协作机器人助力电子制造业智能转型
    netty学习笔记
    画图模板
    文本建模
    自定义IP协议
  • 原文地址:https://www.cnblogs.com/zd520pyx1314/p/7518690.html
Copyright © 2020-2023  润新知