上次说到了共享文件系统,这次说说另一个:nfs
nfs和cifs的区别在于
CIFS 是针对 Microsoft Windows 操作系统的本地网络文件系统。Linux 系统可以挂载和访问 CIFS 文件共享 , 如同常见的网络文件系统一样。然而 , 由于 CIFS 是基于 NTFS 文件系统权限模型及其自身的身份验证系统来构建的 , 因而 CIFS 协议中的所有内容并不能很好地映射到 Linux 中
NFS ( Network File System ) 是由 Linux 、 UNIX 及其他类似操作系统使用的互联网标准协议 , 可作为它们的本地网络文件系统。它是一种活动扩展之下的开放标准 , 可支持本地 Linux 权限和文件系统功能
所以说当使用共享文件的系统为LINUX或UNIX的时候可以使用NFS
安装
yum install nfs-utils -y
之后设置防火墙通过服务
firewall-cmd --list-all
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
首先将nfs加入进防火墙的通过名单中,firewall-cmd --list-all ##查看防火墙的全部信息
nfs文件系统的端口分配是由rpc-bind分配的,所以添加通过名单的时候也要添加rpc-bind
nfs文件系统在使用的时候必须是挂载的方式,所以也要将mountd加入到通过名单中
打开编辑/etc/exports ##文件共享表
*(sync) 立即同步
修改共享文件的权限
chmod 770 /zjj/nfs
将文件中写出的目录创建出来
exportfs -rv ##刷新export文件
这时在客户端就可以查看共享目录了
showmount -e 172.25.254.154 ##发现nfs文件,等同于samba的smbclient -L
发现之后就可以进行挂载了
mount 172.25.254.154:/zjj/nfs /mnt/
但是我们之前也说过许多的挂载,而且不使用的挂载非常浪费资源
所以选择一种自动挂载的方式,可以在你使用的时候挂载,不使用的时候取消挂载
在客户端进行这个操作
yum install autofs.x86_64 -y
重新启动服务的时候也会取消挂载
vim /etc/auto.master ##这个目录下写的是最终挂载点的上层目录和子策略文件
vim /etc/zjj.nfs ##编辑这个子策略文件
子策略文件上写最终挂载点及将哪一个设备挂载上去 ##-ro只读 -rw读写noatime在文件被浏览的时候忽略accesstime
完成之后cd 上层目录之后进入就可以看到挂载的内容,但是前提是不能自己先将这个目录创建出来,不然会出问题
7.0 和7.2配置文件的目录不同,使用rpc -qc autofs 查看
之后进入,就可以看到内容了
填加读写权限
服务端vim /etc/exports ##写完这个文件一定不能重启服务,要用exportfs -rv
修改共享目录的权限
chmod 777 /zjj/nfs/
因为不设置登陆用户身份的话就是匿名的,所以要设置为777
客户端
vim /etc/zjj.nfs
systemctl restart autofs.service
测试
修改登陆用户身份
服务端vim /etc/exports
anonuid=1001,anongid=1001(强制登陆用户是用什么身份)
exportfs -rv
客户端测试
no_root_squash(当客户端使用超级用户身份登陆的时候,保持身份不变)(但是这个命令和上一个命令是冲突的)
重复命令。不做测试
当客户端在挂载的目录没有权限创建文件的时候,是因为客户端虽然是超级用户,但是想要修改的文件却是服务端的文件,没有权限修改别的文件