项目要求
架设一台NFS服务器,并按照以下要求配置
1、开放/nfs/shared目录,供所有用户查询资料
2、开放/nfs/upload目录,为192.168.100.0/24网段主机可以上传目录,并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210
3、将/home/tom目录仅共享给192.168.100.136这台主机,并只有用户tom可以完全访问该目录
环境准备
服务端
[root@server ~]# systemctl stop firewalld
[root@server ~]# setenforce 0
[root@server ~]# rpm -qa | grep rpcbind
[root@server ~]# yum install nfs-utils rpcbind -y
客户端
[root@Node1 ~]# yum install nfs-utils -y
1、开放/nfs/shared目录,供所有用户查询资料
server端:
[root@server ~]# systemctl start nfs-server 9把rpc和nfs服务合并了直接启动即可
[root@server ~]# mkdir -p /nfs/shared #先创一个目录文件
[root@server ~]# touch /nfs/shared/资料{a..f} #创几个资料文件做模拟
[root@server ~]# ll /nfs/shared/ 查看server端的文件
总用量 0
-rw-r--r--. 1 root root 0 11月 8 23:52 资料a
-rw-r--r--. 1 root root 0 11月 8 23:52 资料b
-rw-r--r--. 1 root root 0 11月 8 23:52 资料c
-rw-r--r--. 1 root root 0 11月 8 23:52 资料d
-rw-r--r--. 1 root root 0 11月 8 23:52 资料e
-rw-r--r--. 1 root root 0 11月 8 23:52 资料f
[root@server ~]# vim /etc/exports 打开nfs的配置文件
/nfs/shared *(ro)
要分享的目录 *代表所有用户 ()中的ro代表只读权限
~
~
~
[root@server ~]# exportfs -ra 导出配置文件生效
[root@server ~]# showmount -e 查看共享的目录
Export list for server:
/nfs/shared *
客户端
[root@Node1 ~]# showmount -e 192.168.20.133 显示服务器分享过来的目录
Export list for 192.168.20.133:
/nfs/shared *
[root@Node1 ~]# mkdir /test 准备搭建文件系统
[root@Node1 ~]# mount -o ro 192.168.20.133:/nfs /test 通过-o参数挂载
[root@Node1 ~]# cd /test/ 查看是否可以看到
[root@Node1 test]# ll
总用量 0
drwxr-xr-x. 2 root root 96 11月 8 23:52 shared
[root@Node1 test]# ll shared/
总用量 0
-rw-r--r--. 1 root root 0 11月 8 23:52 资料a
-rw-r--r--. 1 root root 0 11月 8 23:52 资料b
-rw-r--r--. 1 root root 0 11月 8 23:52 资料c
-rw-r--r--. 1 root root 0 11月 8 23:52 资料d
-rw-r--r--. 1 root root 0 11月 8 23:52 资料e
-rw-r--r--. 1 root root 0 11月 8 23:52 资料f
2、上传文件的操作
服务端:
[root@server ~]# mkdir /nfs/upload
[root@server ~]# touch /nfs/upload/资料{1..5}
[root@server ~]# ll /nfs/upload/
总用量 0
-rw-r--r--. 1 root root 0 11月 9 00:23 资料1
-rw-r--r--. 1 root root 0 11月 9 00:23 资料2
-rw-r--r--. 1 root root 0 11月 9 00:23 资料3
-rw-r--r--. 1 root root 0 11月 9 00:23 资料4
-rw-r--r--. 1 root root 0 11月 9 00:23 资料5
[root@server ~]# vim /etc/exports
/nfs/shared *(ro)
/nfs/upload 192.168.20.0/24(rw,all_squash,anonuid=2100,anongid=2100)
[root@server ~]# groupadd -g 210 nfs-upload
[root@server ~]# useradd -u 210 -g 210 nfs-upload
[root@server ~]# tail -1 /etc/passwd
nfs-upload:x:2100:2100::/home/nfs-upload:/bin/bash
[root@server ~]# showmount -e
Export list for server:
/nfs/shared *
/nfs/upload 192.168.20.0/24
同时需要注意/nfs/uplaod 的权限问题,要想让映射用户可以用创建文件,那么就需要其他人的读权限。
[root@server home]# chmod o+w /nfs/upload/
[root@server home]# ll /nfs/
总用量 0
drwxr-xr-x. 2 root root 96 11月 8 23:52 shared
drwxr-xrwx. 2 root root 81 11月 9 00:23 upload
客户端:
客户端192.168.20.141可以访问到,
[root@Node1 test]# showmount -e 192.168.20.133
Export list for 192.168.20.133:
/nfs/shared *
/nfs/upload 192.168.100.0/24
[root@Node1 test]# mount -o rw 192.168.20.133:/nfs/ /test/ 通过读写方式挂载
[root@Node1 test]# cd /test/
[root@Node1 test]# ll upload/
总用量 0
-rw-r--r--. 1 root root 0 11月 9 00:23 资料1
-rw-r--r--. 1 root root 0 11月 9 00:23 资料2
-rw-r--r--. 1 root root 0 11月 9 00:23 资料3
-rw-r--r--. 1 root root 0 11月 9 00:23 资料4
-rw-r--r--. 1 root root 0 11月 9 00:23 资料5
[root@Node1 upload]# touch a
[root@Node1 upload]# ll
总用量 0
-rw-r--r--. 1 root root 0 11月 9 00:23 资料1
-rw-r--r--. 1 root root 0 11月 9 00:23 资料2
-rw-r--r--. 1 root root 0 11月 9 00:23 资料3
-rw-r--r--. 1 root root 0 11月 9 00:23 资料4
-rw-r--r--. 1 root root 0 11月 9 00:23 资料5
-rw-r--r--. 1 2100 2100 0 11月 9 16:39 a
可以看到新建的文件的uid和gid都是2100.
3、将/home/tom目录仅共享给192.168.100.136这台主机,并只有用户tom可以完全访问该目录
客户端:
其实很简单只需要把共享文件的所属用户和所属组改为tom即可
[root@server home]# mkdir /nfs/tom 新建一个共享目录
[root@server home]# useradd tom 新建一个tom用户
[root@server home]# chown tom:tom /nfs/tom 修改所属用户所属组
[root@server home]# vim /etc/exports 编辑配置文件添加这一行
/nfs/tom 192.168.20.141/24(rw)
[root@server home]# exportfs -ra
[root@server home]# showmount -e
Export list for server:
/nfs/shared *
/nfs/tom 192.168.20.141/24
/nfs/upload 192.168.20.0/24
客户端:
我们先使用fox用户看看是否可以完全访问tom目录很明显是不可以的
[root@Node1 test]# ll
总用量 0
drwxr-xr-x. 2 root root 96 11月 8 23:52 shared
drwxr-xr-x. 2 2101 2101 6 11月 9 16:43 tom
drwxr-xrwx. 2 root root 90 11月 9 16:39 upload
[root@Node1 test]# su fox
[fox@Node1 test]$ cd tom/
[fox@Node1 tom]$ touch a
touch: 无法创建 'a': 权限不够
创建tom用户切换后尝试:
[root@Node1 tom]# useradd -u 2101 tom
[root@Node1 tom]# su tom
[tom@Node1 tom]$ touch b
[tom@Node1 tom]$ ll
总用量 0
-rw-rw-r--. 1 tom tom 0 11月 9 16:54 b
-rw-r--r--. 1 root root 0 11月 9 16:51 tom1
-rw-r--r--. 1 root root 0 11月 9 16:51 tom2
[tom@Node1 tom]$
完成目的!