NFS实现共享
准备环境:
要共享的主机10.0.0.38
查看的主机:10.0.0.7 #首先要安装yum -y install nfs-utils 软件包
1 在10.0.0.38建立要共享的文件夹:
mkdir /data/nfsdir{1,2}
在文件夹里建立要共享的文件:
[root@Centos8 ~]#touch /data/nfsdir1/a.txt
[root@Centos8 ~]#touch /data/nfsdir2/b.txt
将共享规则放在配置文件其中一个文件中
示例:
root@Centos8 ~]#vim /etc/exports
/data/nfsdir1 * # *表示共享给任何主机
设置后要生效,两种方式
第一种是: systemctl restart nfs-server (如果有用户在访问,会断开
第二种是: exportfs -r (重新读取配置文件,不影响正在使用的客户
exportfs -v 查看所有的共享
下图所示表示生效了;
(注意:
输出(打开)共享是 exportfs -a
停止(关闭)共享是 exportfs -au
在远程主机10.0.0.7上使用共享;执行showmount -e 10.0.0.38查看
[root@centos7 ~]#showmount -e 10.0.0.38
Export list for 10.0.0.38:
/data/nfsdir1 *
在远程主机上使用先挂载到本机主机
[root@centos7 ~]#mkdir /mnt/nfs1 #创建文件夹存放共享文件
[root@centos7 ~]#mount 10.0.0.38:/data/nfsdir1 /mnt/nfs1 #将共享文件挂载到本地文件夹
[root@centos7 ~]#ls /mnt/nfs1 #查看共享的文件夹
a.txt
挂载成功后 df 可以查看
在38上 转移一些文件进去
在远程主机7上马上可以看到
查看aa.txt文件内容
目前是只读
查看挂载关系提示:mount
显示是rw
在远程主机38上提示是ro的
在配置文件exports里面:
[root@Centos8 ~]#vim /etc/exports
/data/nfsdir1 * #*后面默认是ro
要设置可读可写,改成rw就可以了
/data/nfsdir1 *(rw) #运行任何主机可读可写
[root@Centos8 ~]#exportfs -r 然后执行生效
再次查看exportfs -v 已经变成rw了
在客户端操作 提示没有权限
原因:跨网络操作要设置两个地方
第一个是用户权限 第二个是文件权限
设置文件夹权限: [root@Centos8 ~]#chmod 777 /data/nfsdir1
客户端才可以执行修改
查看文件权限,映射成nobody
重新设置权限 chmod 755 /data/nfsdir1后 客户端再次无法写入
这个时候 不需要再次修改权限,只需要设置nobody即可
[root@Centos8 ~]#setfacl -m u:nobody:rwx /data/nfsdir1
root_squash 压榨 ;远程的root会降低其权限
no_all_squash 非远程root不压榨
如果是非root用户 访问 ,不会压榨成nobody 还是 用户 !
至此 设置完成
谢谢观赏