linux虚拟机之间共享文件夹

Windows下VMware的共享文件夹不能保留Linux权限,而为了保留Linux权限打包一个tar有时又太麻烦,这时就可以考虑使用NFS共享文件夹

1、服务器端安装nfs服务器

debian系:

sudo apt install nfs-kernel-server

redhat系:

sudo yum install nfs-utils

2、服务器端配置/etc/exports

# 【这些配置没有任何安全性,只能用于开发环境,不要在生产环境中使用】
# 1、适用于两个虚拟机uid/gid对应的情况
# 导出/home/username/dir,所有机器(*)均可访问,可读写、同步
/home/username/dir *(rw,sync)
# 2、适用于两个虚拟机uid/gid对应、需要穿透root权限的情况
# 导出/home/username/dir,所有机器(*)均可访问,可读写、同步、不将root过滤为匿名用户
/home/username/dir *(rw,sync,no_root_squash)
# 3、适用于两个虚拟机uid/gid不对应的情况
# 导出/home/username/dir,所有机器(*)均可访问,可读写、同步、将所有uid/gid过滤为匿名用户,匿名用户指定为1000/1000
/home/username/dir *(rw,sync,all_squash,anonuid=1000,anongid=1000)
# 3、适用于两个虚拟机uid/gid不对应,但是需要穿透已知用户和root的情况
# 导出/home/username/dir,所有机器(*)均可访问,可读写、同步、不将root过滤为匿名用户,匿名用户指定为1000/1000
/home/username/dir *(rw,sync,no_root_squash,anonuid=1000,anongid=1000)

配置的含义:

ro:共享目录只读
rw:共享目录可读可写
all_squash:所有访问用户都映射为匿名用户或用户组
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组
root_squash(默认):将来访的root用户映射为匿名用户或用户组
no_root_squash:来访的root用户保持root帐号权限
anonuid=:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534)
anongid=:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534)
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器
insecure:允许客户端从大于1024的tcp/ip端口连接服务器
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率
no_wdelay:若有写操作则立即执行,应与sync配合使用
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

3、服务器端重启nfs服务器

debian系:

sudo systemctl restart nfs-kernel-server

redhat系:

sudo systemctl restart nfs-server

 4、客户机端挂载

# 192.168.66.233改成服务端的ip地址
sudo mount 192.168.66.233:/home/username/dir /home/username/nfsdir

参考资料:

NFS服务基本配置及使用 - lykyl的自留地 - 博客园 (cnblogs.com)

debian10 NFS配置_debian nfs配置_qetfw的博客-CSDN博客

如何在 Debian 10 系统上安装 NFS Server - 软件简史 - SegmentFault 思否

完全解读NFS_51CTO博客_nfs

你可能感兴趣的:(linux,debian,运维)