NFS概念:

网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件系统,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问,也可用于允许用户在同一工作组中从不同客户端访问其文件NFS协议有多个版本:Linux支持版本4,版本3和版本2,而大多数系统管理员熟悉的是NFSv3。默认情况下,该协议并不安全,但是更新的版本(如 NFSv4)提供了对更安全的身份验证持 , 甚至可以通过kerberos进行加密。网络文件系统:nfs,针对类linux用户。

一.NFS的常规配置:

【服务端server】:

[root@server ~]# cd /mnt/                   ##移动路径
[root@server mnt]# ls                     ##查看
file1  file2  file3  file4  file5
[root@server mnt]# yum install nfs-utils -y       ##安装nfs服务
[root@server mnt]# systemctl start nfs               ##开启服务
[root@server mnt]# systemctl status nfs              ##查看状态
/mnt *(sync,ro)  只读
[root@server mnt]# vim /etc/exports              ##编辑文件
[root@server mnt]#           ##cat /etc/exports

[root@server mnt]# exportfs -rv      ##刷新
exporting *:/mnt

【客户端desktop】:

[root@client ~]# yum install nfs-utils -y      ##客户端安装服务
[root@client ~]# showmount -e 172.25.254.220    
Export list for 172.25.254.220:
/mnt *
[root@client ~]# df                  ##查看挂载
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/vda1             10473900 3182744   7291156  31% /
devtmpfs                469344       0    469344   0% /dev
tmpfs                   484932      80    484852   1% /dev/shm
tmpfs                   484932   12756    472176   3% /run
tmpfs                   484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo      483670    2355    451824   1% /home
//172.25.254.220/DIR  10473900 3157836   7316064  31% /mnt
[root@client ~]# umount /mnt                ##卸载
[root@client ~]# mount 172.25.254.220:/mnt/ /mnt/
[root@client ~]# df
Filesystem          1K-blocks    Used Available Use% Mounted on
/dev/vda1            10473900 3182744   7291156  31% /
devtmpfs               469344       0    469344   0% /dev
tmpfs                  484932      80    484852   1% /dev/shm
tmpfs                  484932   12760    472172   3% /run
tmpfs                  484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo     483670    2355    451824   1% /home
172.25.254.220:/mnt  10473984 3157760   7316224  31% /mnt
[root@client ~]# cd /mnt/
[root@client mnt]# rm -fr *                ##删除的时候为只读
rm: cannot remove ‘file1’: Read-only file system
rm: cannot remove ‘file2’: Read-only file system
rm: cannot remove ‘file3’: Read-only file system
rm: cannot remove ‘file4’: Read-only file system
rm: cannot remove ‘file5’: Read-only file system
[root@server mnt]# vim /etc/exports 
/mnt *(sync,rw)                  ##可写
[root@server mnt]# exportfs -rv           ##进行刷新
exporting *:/mnt
[root@client mnt]# cd
[root@client ~]# umount /mnt/
[root@client ~]# mount 172.25.254.220:/mnt/ /mnt/       ##挂载
[root@client ~]# cd /mnt/
[root@client mnt]# ls
file1  file2  file3  file4  file5
[root@client mnt]# rm -fr *               ##但是删除操作被拒绝
rm: cannot remove ‘file1’: Permission denied
rm: cannot remove ‘file2’: Permission denied
rm: cannot remove ‘file3’: Permission denied
rm: cannot remove ‘file4’: Permission denied
rm: cannot remove ‘file5’: Permission denied
[root@server mnt]# chmod 777 /mnt/             ##添加权限之后就可以建立文件
[root@client mnt]# cd 
[root@client ~]# umount /mnt
[root@client ~]# mount 172.25.254.220:/mnt/ /mnt/
[root@client ~]# cd /mnt/
[root@client mnt]# touch file7            ##建立文件的用户和组为nfsnobody
[root@client mnt]# ll
total 0
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file1
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file2
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file3
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file4
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file5
-rw-r--r-- 1 root      root      0 Jun  2 04:39 file6
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun  2 04:39 file7 
[root@server mnt]# vim /etc/exports
[root@server mnt]# cat /etc/exports
/mnt *(sync,rw,no_root_squash)           ##建立文件的用户和组为root
[root@server mnt]# exportfs -rv
exporting *:/mnt
[root@client mnt]# cd 
[root@client ~]# umount /mnt/
[root@client ~]# mount 172.25.254.220:/mnt/ /mnt/
[root@client ~]# cd /mnt/
[root@client mnt]# touch file8
[root@client mnt]# ll
total 0
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file1
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file2
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file3
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file4
-rw-r--r-- 1 root      root      0 Jun  2 02:01 file5
-rw-r--r-- 1 root      root      0 Jun  2 04:39 file6
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun  2 04:39 file7
-rw-r--r-- 1 root      root      0 Jun  2 04:41 file8
[root@server mnt]# vim /etc/exports
/mnt *(sync,rw,anonuid=1000,anongid=1000)
[root@server mnt]# exportfs -rv
exporting *:/mnt
[root@client mnt]# cd
[root@client ~]# umount /mnt/
[root@client ~]# mount 172.25.254.220:/mnt/ /mnt/
[root@client ~]# cd /mnt/
[root@client mnt]# rm -fr *
[root@client mnt]# touch file1
[root@client mnt]# ll               ##建立文件的用户组为student
total 0
-rw-r--r-- 1 student student 0 Jun  2 04:42 file1
[root@server mnt]# vim /etc/exports
[root@server mnt]# cat /etc/exports
/mnt *(sync,rw,anonuid=1000,anongid=1000)
/westos 172.25.254.0/24(sync) 172.25.254.20(sync,rw)
[root@server mnt]# exportfs -rv
exporting 172.25.254.120:/westos
exporting 172.25.254.0/24:/westos
exporting *:/mnt
在虚拟机挂载/westos/进行测试,依次添加权限实验。

二.AUTOFS自动挂载:

【在服务端server】:

[root@server ~]# systemctl start nfs             ##开启服务
[root@server ~]# mkdir /westos                 ##建立要共享的目录
[root@server ~]# chmod 777 /westos/                 ##给最大权限
[root@server ~]# vim /etc/exports                ##编辑文件
/westos   172.25.254.120/24(sync,rw,no_root_squash)       ##root用户具有根目录的完全管理访问权限
[root@server ~]# exportfs -rv                ##刷新服务
exporting 172.25.254.120/24:/westos

【在客户端desktop】:

[root@client ~]# showmount -e 172.25.254.220             ##查看nfs共享状态
Export list for 172.25.254.220:
/westos 172.25.254.120/24
[root@client ~]# yum install autofs -y                        ##安装autofs服务
Loaded plugins: langpacks
rhel_dvd                                                 | 4.1 kB     00:00     
Resolving Dependencies
--> Running transaction check
[root@client ~]# cd /net                             ##没重启的时候,没有自动建立/net
-bash: cd: /net: No such file or directory
[root@client ~]# systemctl start autofs              ##重启服务
[root@client ~]# cd /net/                   ##服务自动建立/net
[root@client net]# ls
[root@client net]# cd 172.25.254.220              
[root@client 172.25.254.220]# pwd
/net/172.25.254.220
[root@client 172.25.254.220]# ls              ##查看有westos共享目录
westos
[root@client 172.25.254.220]# cd westos
[root@client westos]# ls
file1  file2  file4
[root@client westos]# df               ##查看挂载
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3187308   7286592  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932      84    484848   1% /dev/shm
tmpfs                     484932   12788    472144   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2356    451823   1% /home
172.25.254.220:/westos  10473984 3158528   7315456  31% /net/172.25.254.220/westos                   ##自动进行挂载
[root@client westos]# vim /etc/sysconfig/autofs               ##编辑文件
TIMEOUT=5         ##自动挂载5s不使用自动卸载(默认的为300s)
[root@client westos]# systemctl restart autofs.service                ##重启服务
[root@client westos]# cd                  ##先移动出来
[root@client ~]# df                    ##查看,已经自动卸载
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/vda1           10473900 3187212   7286688  31% /
devtmpfs              469344       0    469344   0% /dev
tmpfs                 484932      84    484848   1% /dev/shm
tmpfs                 484932   12788    472144   3% /run
tmpfs                 484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo    483670    2356    451823   1% /home

三.配置autofs的指定挂载点:

【在客户端desktop】:

[root@client ~]# vim /etc/auto.master               ##编辑最终挂载点的上层目录
/nfs    /etc/auto.westos
[root@client ~]# vim /etc/auto.westos                 ##最终挂载点的名称
westos   -ro   172.25.254.220:/westos
[root@client ~]# systemctl restart autofs.service            ##重启服务
[root@client ~]# cd /nfs
[root@client nfs]# ls
[root@client nfs]# cd westos
[root@client westos]# df                      ##查看挂载
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3187228   7286672  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932      84    484848   1% /dev/shm
tmpfs                     484932   12788    472144   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2356    451823   1% /home
172.25.254.220:/westos  10473984 3158656   7315328  31% /nfs/westos            ##挂载点已经更改
[root@client westos]# mount                  ##查看挂载信息是否和配置的相同
172.25.254.220:/westos on /nfs/westos type nfs4 (ro,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.25.254.120,local_lock=none,addr=172.25.254.220)