一、NFS服务器配置实例
实验拓扑

二、实验要求及环境

2.1实验环境

NFS服务器 IP:192.168.8.5
环境:
[root@server7 ~]# uname -a
Linux server7.ctos.zu 3.10.0-514.el7.centos.plus.i686 #1 SMP Wed Jan 25 12:55:04 UTC 2017 i686 i686 i386 GNU/Linux
[root@server7 ~]# cat /etc/redhat-release
CentOS release 7.3.1611 (AltArch)

客户端IP:192.168.8.7
环境:
[root@client-A ~]# uname -a
Linux client-A.ctos.zu 2.6.32-696.el6.i686 #1 SMP Tue Mar 21 18:53:30 UTC 2017 i686 i686 i386 GNU/Linux
[root@client-A ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)

2.2、实验要求

NFS服务器

1、/home/share 目录可读写,并且不限制用户身份,共享给192.168.8.0/24网段不的所有主机;
2、/home/zhidata 这个目录仅共享给192.168.8.7这台主机,以供该主机上面的zhi这个用户来使用,
也就是说zhi在192.168.8.5和192.168.8.7上均有账号,且账号均为zhi;
3、/home/upload 这个目录做为192.168.8.0/24网段的数据上传目录,其中/home/upload
的用户和所属组为nfs-upload这个名字,它的UID和GID均为222;
4、/home/nfs  这个目录的属性为只读,可提供除了网段内的工作站外,向Internet也提供数据内容。

三、服务器端设置
1、 编辑/etc/exports内容
[root@server7 etc]# cat /etc/exports
/home/share  192.168.8.0/24(rw,no_root_squash)
/home/zhidata  192.168.8.7(rw)
/home/upload   192.168.8.0/24(rw,all_squash,anonuid=222,anongid=222)
/home/nfs     192.168.8.0/24(ro)  *(ro,all_squash)
2、按要求建立每个对应目录
    2.1、创建/home/share目录 任何人都可以在 /home/share内新增、修改文件,但
    仅有该文件/目录的建立者与root能够删除自己的目录或文件。
    
    [root@server7 etc]# mkdir -p  /home/share
    [root@server7 etc]# ll -d /home/share/
    drwxr-xr-x. 2 root root 6 9月   5 15:50 /home/share/
    [root@server7 etc]# chmod 1777  /home/share/
    [root@server7 etc]# ll -d /home/share/
    drwxrwxrwt. 2 root root 6 9月   5 15:50 /home/share/
    
    2.2、创建/home/nfs
    
    [root@server7 etc]# ll -d /home/nfs/
    drwxr-xr-x. 2 root root 6 9月   5 16:52 /home/nfs/
    
    2.3、创建/home/zhidata目录
    
    [root@server7 etc]# mkdir -v /home/zhidata
    mkdir: 已创建目录 "/home/zhidata"
    [root@server7 etc]# ll -d /home/zhidata/
    drwxr-xr-x. 2 root root 6 9月   5 16:57 /home/zhidata/
    [root@server7 etc]# useradd zhi
    root@server7 etc]# passwd zhi
    更改用户 zhi 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    [root@server7 etc]# cat /etc/passwd | grep zhi
    zhi:x:1000:1000:zhi:/home/zhi:/bin/bash
    [root@server7 etc]# chmod 700 /home/zhidata/
    [root@server7 etc]# chown -R zhi:zhi /home/zhidata/
    [root@server7 etc]# ll -d /home/zhidata/
    drwx------. 2 zhi zhi 6 9月   5 16:57 /home/zhidata/
    
    2.4、创建/home/upload目录
#先建立对应账号与组名及UID
[root@server7 etc]# groupadd  -g 222 nfs-upload
[root@server7 etc]# useradd -g 222 -u 222 -M nfs-upload
[root@server7 etc]# cat /etc/passwd|grep nfs
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
nfs-upload:x:222:222::/home/nfs-upload:/bin/bash

#创建目录,修改属主
[root@server7 etc]# mkdir /home/upload
[root@server7 etc]# chown -R nfs-upload:nfs-upload  /home/upload/
[root@server7 etc]# ll -d /home/upload/
drwxr-xr-x. 2 nfs-upload nfs-upload 6 9月   6 08:38 /home/upload/

2.5、重启NFS服务
[root@server7 etc]# systemctl restart  nfs
[root@server7 etc]# systemctl status  nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since 三 2017-09-06 08:41:40 CST; 8s ago
  Process: 9171 ExecStopPost=/usr/sbin/exportfs -f (code=exited, status=0/SUCCESS)
  Process: 9169 ExecStopPost=/usr/sbin/exportfs -au (code=exited, status=0/SUCCESS)
  Process: 9168 ExecStop=/usr/sbin/rpc.nfsd 0 (code=exited, status=0/SUCCESS)
  Process: 9181 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 9180 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 9181 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

9月 06 08:41:40 server7.ctos.zu systemd[1]: Starting NFS server and services...
9月 06 08:41:40 server7.ctos.zu systemd[1]: Started NFS server and services.
[root@server7 etc]# tail /var/log/messages
Sep  6 08:41:40 server7 systemd: Started NFS Mount Daemon.
Sep  6 08:41:40 server7 rpc.mountd[9178]: Version 1.3.0 starting
Sep  6 08:41:40 server7 systemd: Started NFSv4 ID-name mapping service.
Sep  6 08:41:40 server7 systemd: Starting NFS server and services...
Sep  6 08:41:40 server7 kernel: NFSD: starting 90-second grace period (net c0c932c0)
Sep  6 08:41:40 server7 systemd: Started NFS server and services.
Sep  6 08:41:40 server7 systemd: Starting Notify NFS peers of a restart...
Sep  6 08:41:40 server7 sm-notify[9198]: Version 1.3.0 starting
Sep  6 08:41:40 server7 sm-notify[9198]: Already notifying clients; Exiting!
Sep  6 08:41:40 server7 systemd: Started Notify NFS peers of a restart.

2.6、查看NFS服务器共享出来目录
[root@server7 etc]# showmount -e localhost
Export list for localhost:
/home/nfs     (everyone)
/home/upload  192.168.8.0/24
/home/share   192.168.8.0/24
/home/zhidata 192.168.8.7
2.7、关闭防火墙、selinux

2.8查看配置
[root@server7 ~]# exportfs -v
/home/zhidata     192.168.8.7(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/home/share       192.168.8.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
/home/upload      192.168.8.0/24(rw,wdelay,root_squash,all_squash,no_subtree_check,anonuid=222,anongid=222,sec=sys,rw,secure,root_squash,all_squash)
/home/nfs         192.168.8.0/24(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
/home/nfs         <world>(ro,wdelay,root_squash,all_squash,no_subtree_check,sec=sys,ro,secure,root_squash,all_squash)

四、客户端配置
4.1、客户端也要安装nfs-utils和rcpbind软件包

[root@client-A ~]# yum install nfs-utils rpcbind

4.2、启动RPC
[root@client-A ~]# service rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@client-A ~]# service rpcbind status
rpcbind (pid  1926) is running...
[root@client-A ~]# chkconfig --list |grep rpcbind
4.3、客户端关闭防火墙、selinux
[root@client-A ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]

4.4 测试网络
[root@client-A ~]# ping 192.168.8.5
PING 192.168.8.5 (192.168.8.5) 56(84) bytes of data.
64 bytes from 192.168.8.5: icmp_seq=1 ttl=64 time=2.16 ms
64 bytes from 192.168.8.5: icmp_seq=2 ttl=64 time=0.697 ms
64 bytes from 192.168.8.5: icmp_seq=3 ttl=64 time=0.346 ms
64 bytes from 192.168.8.5: icmp_seq=4 ttl=64 time=0.336 ms
64 bytes from 192.168.8.5: icmp_seq=5 ttl=64 time=0.335 ms
64 bytes from 192.168.8.5: icmp_seq=6 ttl=64 time=0.317 ms
64 bytes from 192.168.8.5: icmp_seq=7 ttl=64 time=0.512 ms
64 bytes from 192.168.8.5: icmp_seq=8 ttl=64 time=0.320 ms
^C
--- 192.168.8.5 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7555ms
rtt min/avg/max/mdev = 0.317/0.629/2.169/0.595 ms

4.5 在客户端查看NFS服务器共享出来目录
[root@client-A ~]# showmount -e 192.168.8.5
Export list for 192.168.8.5:
/home/nfs     (everyone)
/home/upload  192.168.8.0/24
/home/share   192.168.8.0/24
/home/zhidata 192.168.8.7
4.6、挂载NFS服务器上/home/nfs目录到本地/opt/data目录下
#挂载
[root@client-A opt]# mount -t nfs 192.168.8.5:/home/nfs  /opt/data/
#查看信息
[root@client-A data]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      6.5G  644M  5.6G  11% /
tmpfs                 250M     0  250M   0% /dev/shm
/dev/sda1             477M   26M  426M   6% /boot
192.168.8.5:/home/nfs
                      8.0G  1.6G  6.5G  20% /opt/data
[root@client-A data]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.8.5:/home/nfs on /opt/data type nfs (rw,vers=4,addr=192.168.8.5,clientaddr=192.168.8.7)
#创建文件测试
[root@client-A data]# touch testabc
touch: cannot touch `testabc': Read-only file system

4.7挂载/home/upload 目录到客户端/opt/upload目录下
#挂载
[root@client-A data]# mkdir /opt/upload
[root@client-A data]# mount -t nfs  192.168.8.5:/home/upload   /opt/upload/
#查看挂载是否成功

[root@client-A data]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      6.5G  644M  5.6G  11% /
tmpfs                 250M     0  250M   0% /dev/shm
/dev/sda1             477M   26M  426M   6% /boot
192.168.8.5:/home/nfs
                      8.0G  1.6G  6.5G  20% /opt/data
192.168.8.5:/home/upload
                      8.0G  1.6G  6.5G  20% /opt/upload
                      
#客户端创建nfs-upload用户
[root@client-A ~]# groupadd  -g 222 nfs-upload
[root@client-A ~]# useradd -g 222 -u 222 -m nfs-upload
    
#测试,可以看到创建的文件及目录默认属主为nfs-upload属组为nfs-upload

[zhi@client-A upload]$ pwd
/opt/upload
[zhi@client-A upload]$ ll
total 0
#测试创建文件
[zhi@client-A upload]$ touch test123
测试创建目录
[zhi@client-A upload]$ mkdir  testdir
[zhi@client-A upload]$ ll -a
total 4
drwxr-xr-x  3 nfs-upload nfs-upload   36 Sep  6 10:28 .
drwxr-xr-x. 4 root       root       4096 Sep  6 18:22 ..
-rw-rw-r--  1 nfs-upload nfs-upload    0 Sep  6 10:28 test123
drwxrwxr-x  2 nfs-upload nfs-upload    6 Sep  6 10:28 testdir

# 在客户端用root用户创建文件测试
root@client-A upload]# touch testabc
[root@client-A upload]# ll
total 0
-rw-r--r-- 1 root       root       0 Sep  6 10:31 nfstest123
-rw-r--r-- 1 nfs-upload nfs-upload 0 Sep  6 10:32 testabc
drwxrwxr-x 2 nfs-upload nfs-upload 6 Sep  6 10:28 testdir
可以看到用root用户创建的文件属主仍是nfs-upload
#测试删除文件
[zhi@client-A upload]$ rm test123
[zhi@client-A upload]$ ll
total 0
drwxrwxr-x 2 nfs-upload nfs-upload 6 Sep  6 10:28 testdir

NFS笔记(二)NFS服务器配置实例的更多相关文章

  1. Cookie学习笔记二:Cookie实例

    今天说说刚刚学到的两个Cookie的最经典应用:自己主动登录和购物车设置 一:自己主动登录 须要两个页面:login.jsp与index.jsp,login.jsp用来输出登录信息,index.jsp ...

  2. NFS笔记(一)NFS服务器工作原理及详细配置

    一.NFS工作原理 1.什么是NFS服务器 NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器.不同的操作系统可以共享彼此的文件. NFS服务器可以让P ...

  3. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

  4. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  5. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  6. k8s部署nacos之二 nfs

    1.在linux服务器下载nacos 首先安装git命令 yum install git git clone https://github.com/nacos-group/nacos-k8s.git ...

  7. Mastering Web Application Development with AngularJS 读书笔记(二)

    第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...

  8. Python 学习笔记二

    笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...

  9. Servlet和JSP读书笔记(二)

    一. GenericServlet 1. 前面写的 Servlet和JSP学习笔记(一) 中的实例都是通过实现Servlet接口编写的,这样存在的问题就是:你必须实现Servlet中的所有方法,而不管 ...

随机推荐

  1. idea配置maven和gradle,阿里云镜像私服

    安装Gradle 从官方网站下载安装包,解压到目录 设置环境变量 PATH=D:\gradle\gradle-3.4.1\bin GRADLE_HOME=D:\gradle\gradle-3.4.1 ...

  2. maven 打包 包含xml

    <build> <finalName>dc-exam</finalName> <!-- 包含xml文件 --> <resources> &l ...

  3. Ubuntu系统中连接TFS的Git地址注意事项

    在Ubuntu中安装Git后,配置远程Git服务器地址,如果是TFS的Git仓库地址,则需要使用IP地址,否则可能出现识别不出来的问题; 再者,如果你想要在Ubuntu的浏览中访问TFS的Git仓库U ...

  4. JAVA第一个程序hello world

    import java.util.Scanner; public class hello { public static void main(String[] args) { System.out.p ...

  5. Spring和EhCache整合(针对使用了Shiro)

    https://blog.csdn.net/a243293719/article/details/78277895

  6. 可输入的 Combox(DropDownList)

    aspx页面中需要可以输入的combox,在网上找了一个js的插件,效果图如下:

  7. 2019.03.22 读书笔记 Linq中的IEnumerable与IQueryable

    Linq主要分为 Linq to object .Linq to XML .Linq to sql(现在都用EF了). 针对object和sql,微软分别设计了两套接口IEnumerable.IQue ...

  8. (转)轻松掌握shell编程中数组的常见用法及示例

    缘起:在老男孩进行linux培训shell编程教学中,发现不少水平不错的网友及同学对数组仍然很迷糊,下面就给大家分享下数组的用法小例子,希望能给大家一点帮助.其实SHELL的数组很简单,好用.我们学习 ...

  9. Linux大文件快速处理小方法

    背景 工作中使用MapReduce任务导出一批含有路径的文件,共计行数300W+,需要检测文件是否在对应的服务器中存在,而文件所在的服务器并非hadoop集群的服务器,因此打算采用bash脚本进行.具 ...

  10. grunt项目构建

    最近想把项目里添加grunt,说白了就是前端自动化管理,具体配置如下: 用到以下几个部件: grunt-contrib-cssmin grunt-contrib-uglify grunt-contri ...