《Linux 环境下 NFS 服务安装及配置使用》是一篇参考博客。
/etc/exports
是NFS服务的配置文件,文件中的内容格式为:
共享目录的路径 允许访问的NFS客户端(共享权限参数1,共享权限参数2,共享权限参数3...)
共享权限参数罗列如下:
参数 | 作用 |
---|---|
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
根据上边的格式和参数作用,/share 10.0.0.1(rw,sync,all_squash)
就是一个例子。需要注意的是共享目录的路径
必须存在而且是一个目录,允许访问的NFS客户端
与共享权限参数
左边的括号之间不能有空格。
我把/share *(rw,sync,all_squash)
写入到/etc/exports
里边,*表示匹配所有ip。
mkdir /share
创建一个目录share
, echo "good" >> /share/test.text
把good
写入到/share/test.text
里边。
yum install -y nfs-utils
安装。
安装完成如下:
systemctl start nfs.service
开启服务,systemctl status nfs.service
查看服务状态。
exited
出现,参考的一篇博客《NFS客户端挂载nfs服务器共享目录时的报错及解决办法:mount.nfs: access denied by server while mounting》
再打开一个主机,使用showmount -e 172.31.0.180
看一下可以挂载的目录,发现报错-bash: showmount: command not found
,参考《找不到showmount命令:-bash: showmount: command not found》。使用yum install -y nfs-utils
安装nfs-utils
。
安装完成如下图:
showmount -e 172.31.0.180
就可以看到可以挂载的目录和ip。
mount -t nfs 172.31.0.180:/share /mnt
把172.31.0.180
的/share
挂载到本机的/mnt
。ls /mnt
就可以看到172.31.0.180
的/share
里边的文件,cat /mnt/test.txt
可以172.31.0.180
的/share/test.txt
里边的内容。
echo "hello" >> /mnt/file
发现报错Permission denied
,这个问题明天再写一篇文章进行解释。
此文章为8月Day 24学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。