利用nfs网络文件系统实现共享资源

NFS文件系统

(1).nfs文件系统简介

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。
在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

(2).nfs文件系统功能

  使用cifs方式的多用户挂载,不论所否使用共享资源,共享目录都挂载着的,这样很占用内存。
想要达到使用共享资源时,共享目录自动挂载,而在不使用共享资源时,共享目录便会自动卸载。
而 cifs是无法做到的,此任务可以由nfs文件系统实现

(3)主要参数说明

1) exportfs命令

 一般格式:  exportfs + 参数

具体参数详解:
 -a           # 全部挂载(或卸载)/etc/exports文件内的设定。
 -r           # 重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
 -u           # 卸载某一目录。
 -v           # 在export时将共享的目录显示在屏幕上。
 
2)关于NFS共享的常用参数
ro                       # 只读访问 
rw                       # 读写访问  
sync                     # 所有数据在请求时写入共享  
async                    # NFS在写入数据前可以相应请求  
secure                   # NFS通过1024以下的安全TCP/IP端口发送  
insecure                 # NFS通过1024以上的端口发送  
wdelay                   # 如果多个用户要写入NFS目录,则归组写入(默认)  
no_wdelay                # 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。  
hide                     # 在NFS共享目录中不共享其子目录  
no_hide                  # 共享NFS目录的子目录  
subtree_check            # 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)  
no_subtree_check         # 和上面相对,不检查父目录权限  
all_squash               # 共享文件的UID和GID映射匿名用户
no_all_squash            # 保留共享文件的UID和GID(默认) 
root_squash              # root用户的所有请求映射成如anonymous用户一样的权限(默认)  
no_root_squash           # root用户具有根目录的完全管理访问权限  
anonuid=xxx              # 指定NFS服务器/etc/passwd文件中匿名用户的UID  
anongid=xxx              # 指定NFS服务器/etc/passwd文件中匿名用户的GID 

1.nfs文件系统共享

在服务端:

##1.安装nfs服务
[root@service ~]# yum install -y nfs-utils 
##2.打开nfs服务
[root@service ~]# systemctl start nfs-server
[root@service ~]# ll /westos/
total 0
##3.创建目录
[root@service ~]# mkdir /westos
[root@service ~]# touch /westos/file{1..5}
[root@service ~]# ll /westos/

利用nfs网络文件系统实现共享资源_第1张图片

4.nfs方式共享目录
[root@service ~]# vim /etc/exports
###############
/westos     *(sync,ro)       ##共享目录为本地真实存在的任何目录均可;sync表示实时同步数据

在这里插入图片描述

##无需重启nfs服务,只需要刷新配置即可
[root@service ~]# exportfs -rv
exporting *:/westos

在客户端:

##1.还原环境:先卸载原有的挂载
[root@client ~]# df
[root@client ~]# umount /mnt

利用nfs网络文件系统实现共享资源_第2张图片

##2.识别共享
[root@client ~]# showmount -e 172.25.254.134
Export list for 172.25.254.134:
/westos *
##3.普通挂载
[root@client ~]# mount 172.25.254.134:/westos /mnt
[root@client ~]# df

利用nfs网络文件系统实现共享资源_第3张图片

##可查看到共享目录中的文件
[root@client ~]# cd /mnt
[root@client mnt]# ls
file1  file2  file3  file4  file5

在这里插入图片描述
2.autofs实现自动挂载与卸载

##1.还原环境;先卸载原有的挂载
[root@client ~]# df
[root@client ~]# umount /mnt

利用nfs网络文件系统实现共享资源_第4张图片

##2.安装autofs服务
[root@client ~]# yum install -y autofs
[root@client ~]# ls -ld /net
ls: cannot access /net: No such file or directory
##3.开启服务
[root@client ~]# systemctl start autofs.service 
[root@client ~]# ls -ld /net
drwxr-xr-x. 2 root root 0 Nov 28 00:39 /net
##4.进入默认挂载目录
[root@client ~]# cd /net
[root@client net]# ls
[root@client net]# cd 172.25.254.134
[root@client 172.25.254.134]# ls
westos
[root@client 172.25.254.134]# cd westos/
[root@client westos]# ls
file1  file2  file3  file4  file5
[root@client westos]# pwd
/net/172.25.254.134/westos
##发现共享目录自动挂载;/net/172.25.254.134/westos为系统默认挂载点
[root@client westos]# df

利用nfs网络文件系统实现共享资源_第5张图片

##5.退出挂载目录
[root@client westos]# cd
##默认300秒之后会自动卸载
[root@client ~]# df

利用nfs网络文件系统实现共享资源_第6张图片
这样便实现了samba共享资源在使用时自动挂载,不使用时自动卸载。

3.更改自动卸载等待时间

[root@client ~]# vim /etc/sysconfig/autofs 
################
TIMEOUT=5   ##设定自动卸载等待时间

利用nfs网络文件系统实现共享资源_第7张图片

##重启autofs服务
[root@client ~]# systemctl restart autofs.service 

测试:

[root@client ~]# df
[root@client ~]# cd /net/172.25.254.134/westos/
[root@client westos]# df

利用nfs网络文件系统实现共享资源_第8张图片

##退出挂载目录,等待5s共享目录自动卸载
[root@client westos]# cd
[root@client ~]# df

利用nfs网络文件系统实现共享资源_第9张图片
4.自定义挂载点与挂载参数

(1)设定挂载点

##1.设定最终挂载点
[root@client ~]# vim /etc/auto.master
################
/mnt                  /etc/auto.pub
最终挂载点的上层目录     主策略文件

利用nfs网络文件系统实现共享资源_第10张图片

##默认此文件不存在
[root@client ~]# ls -l /etc/auto.pub
ls: cannot access /etc/auto.pub: No such file or directory
##2.编写主策略文件
[root@client ~]# vim /etc/auto.pub
################
linux   -ro   172.25.254.134:/westos

在这里插入图片描述

[root@client ~]# ll /etc/auto.pub 
-rw-r--r--. 1 root root 44 Nov 28 01:26 /etc/auto.pub
##3.重启autofs服务    
[root@client ~]# systemctl restart autofs.service 

测试:

##进入自行设定的挂载目录
[root@client ~]# cd /mnt
[root@client mnt]# ls
[root@client mnt]# cd linux
[root@client linux]# ls
file1  file2  file3  file4  file5
##发现共享目录自动挂载;并且挂载点更改为/mnt/linux
[root@client linux]# df

利用nfs网络文件系统实现共享资源_第11张图片

##退出挂载目录
[root@client linux]# cd
##等待5s,发现共享目录自动卸载
[root@client ~]# df

利用nfs网络文件系统实现共享资源_第12张图片
(2)设定挂载参数

1.更改挂载版本

@1.默认挂载版本为4

##进入挂载目录
[root@client ~]# cd /mnt/linux
[root@client linux]# ls
file1  file2  file3  file4  file5
##自动挂载
[root@client linux]# df

利用nfs网络文件系统实现共享资源_第13张图片

##查看挂载版本信息
[root@client linux]# mount

利用nfs网络文件系统实现共享资源_第14张图片

@2.更改挂载版本

[root@client linux]# cd
##更改挂载版本
[root@client ~]# vim /etc/auto.pub
################
linux   -ro,vers=3     172.25.254.134:/westos

在这里插入图片描述
测试:

[root@client ~]# cd /mnt/linux
[root@client linux]# mount

利用nfs网络文件系统实现共享资源_第15张图片
2.更改挂载权限

@1.发现客户端只能访问共享文件但无法删除文件
[root@client linux]# pwd
/mnt/linux
[root@client linux]# ls
file1  file2  file3  file4  file5
##删除文件失败;文件系统只读
[root@client linux]# rm -rf file1
rm: cannot remove ‘file1’: Read-only file system
[root@client linux]# cd

利用nfs网络文件系统实现共享资源_第16张图片

@2.因为服务端是以只读的方式共享的
[root@service ~]# cat /etc/exports
/westos     *(sync,ro)

在这里插入图片描述

##并且客户端挂载参数设定的为只读
[root@client ~]# cat /etc/auto.pub 
linux     -ro,vers=3        172.25.254.134:/westos

在这里插入图片描述
那么怎样才能让客户端对共享目录拥有读写权限呢?

##1.更改共享方式
[root@service ~]# vim /etc/exports
#################
/westos     *(sync,rw)

在这里插入图片描述

##2.刷新
[root@service ~]# exportfs -rv
exporting *:/westos
##3.更改挂载权限
[root@client ~]# vim /etc/auto.pub 
################
linux     -rw,vers=3        172.25.254.134:/westos

在这里插入图片描述

[root@client ~]# cd /mnt/linux
[root@client linux]# ls
file1  file2  file3  file4  file5
##删除失败;操作不被允许,说明与共享权限无关,与文件本身的权限有关
[root@client linux]# rm -rf file1
rm: cannot remove ‘file1’: Permission denied

在这里插入图片描述

##查看文件权限
[root@service ~]# ll /westos/
total 0
-rw-r--r--. 1 root root 0 Nov 28 12:55 file1
-rw-r--r--. 1 root root 0 Nov 28 12:55 file2
-rw-r--r--. 1 root root 0 Nov 28 12:55 file3
-rw-r--r--. 1 root root 0 Nov 28 12:55 file4
-rw-r--r--. 1 root root 0 Nov 28 12:55 file5
[root@service ~]# ll -d /westos
drwxr-xr-x. 2 root root 66 Nov 28 12:55 /westos
##4.更改目录权限;
[root@service ~]# chmod 777 /westos
[root@service ~]# ll -d /westos
drwxrwxrwx. 2 root root 66 Nov 28 12:55 /westos

利用nfs网络文件系统实现共享资源_第17张图片
测试:

[root@client linux]# pwd
/mnt/linux
##删除文件成功
[root@client linux]# rm -rf file1
[root@client linux]# ls
file2  file3  file4  file5

利用nfs网络文件系统实现共享资源_第18张图片
3.更改挂载用户身份

(1).更改挂载用户身份为超级用户

@默认挂载用户身份为匿名用户
[root@client linux]# pwd
/mnt/linux
[root@client linux]# ls
file2  file3  file4  file5
##建立文件
[root@client linux]# touch file6
[root@client linux]# ls
file2  file3  file4  file5  file6

在这里插入图片描述

[root@service ~]# ll /westos/
total 0
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file2
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file3
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file4
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file5
-rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 13:15 file6

利用nfs网络文件系统实现共享资源_第19张图片

##1.指定挂载用户身份
[root@service ~]# vim /etc/exports
#################
 /westos   *(sync,rw,no_root_squash)

在这里插入图片描述

##2.刷新
[root@service ~]# exportfs -rv
exporting *:/westos

测试:

[root@client linux]# pwd
/mnt/linux
##建立文件
[root@client linux]# touch file7
[root@client linux]# ls
file2  file3  file4  file5  file6  file7

在这里插入图片描述

##查看文件所有人
[root@service ~]# ll /westos/
total 0
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file2
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file3
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file4
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file5
-rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 13:15 file6
-rw-r--r--. 1 root      root      0 Nov 28 13:18 file7

利用nfs网络文件系统实现共享资源_第20张图片
(2).更改挂载用户身份为普通用户

##1.查看客户端存在的用户的uid和gid
[root@client ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@client ~]# id westos
uid=1001(westos) gid=1001(westos) groups=1001(westos)

在这里插入图片描述

##2.指定挂载用户和用户组身份
[root@service ~]# vim /etc/exports
#################
/westos   *(sync,rw,anonuid=1000,anongid=1000)    ##student的用户uid和gid为1000;即指定挂载用户和用户组均为student

在这里插入图片描述

##3.刷新
[root@service ~]# exportfs -rv
exporting *:/westos

测试:

[root@client ~]# cd /mnt/linux
[root@client linux]# ls
file2  file3  file4  file5  file6  file7
##建立文件
[root@client linux]# touch file8
[root@client linux]# ls
file2  file3  file4  file5  file6  file7  file8

利用nfs网络文件系统实现共享资源_第21张图片

##查看文件的所有人和所有组
[root@service ~]# ll /westos/
total 0
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file2
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file3
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file4
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file5
-rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 13:15 file6
-rw-r--r--. 1 root      root      0 Nov 28 13:18 file7
-rw-r--r--. 1 student   student   0 Nov 28 19:43 file8

利用nfs网络文件系统实现共享资源_第22张图片

##1.指定挂载用户和用户组身份
[root@service ~]# vim /etc/exports
#################
/westos   *(sync,rw,anonuid=1000,anongid=1001)   ##student的uid为1000,westos的gid为1001;即指定挂载用户身份为student,组身份为westos
##2.刷新
[root@service ~]# exportfs -rv
exporting *:/westos

测试:

[root@client linux]# pwd
/mnt/linux
[root@client linux]# ls
file2  file3  file4  file5  file6  file7  file8
[root@client linux]# touch file9
[root@client linux]# ls
file2  file3  file4  file5  file6  file7  file8  file9

利用nfs网络文件系统实现共享资源_第23张图片

[root@service ~]# ll /westos/
total 0
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file2
-rw-r--r--. 1 root      root      0 Nov 28 13:07 file3
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file4
-rw-r--r--. 1 root      root      0 Nov 28 12:55 file5
-rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 13:15 file6
-rw-r--r--. 1 root      root      0 Nov 28 13:18 file7
-rw-r--r--. 1 student   student   0 Nov 28 19:43 file8
-rw-r--r--. 1 student   westos    0 Nov 28 19:45 file9

利用nfs网络文件系统实现共享资源_第24张图片

你可能感兴趣的:(利用nfs网络文件系统实现共享资源)