Arch Linux虚拟机中Tomcat用户无法访问VirtualBox挂载的exFAT共享文件夹问题
Arch Linux虚拟机中Tomcat用户无法访问VirtualBox挂载的exFAT共享文件夹问题
看起来问题核心就在VirtualBox共享文件夹的挂载参数差异上!你对比Debian和Arch的mount输出就能发现,Debian的自动挂载默认带上了gid=999,dmode=0770,fmode=0770这些关键权限配置,而你的Arch(Manjaro内核)虚拟机里的挂载参数缺少这些,导致Tomcat用户虽然加入了vboxsf组,但实际权限不生效。
下面给你两种解决办法,临时生效和永久生效都有:
一、临时重新挂载(立即生效,重启后失效)
先卸载当前的共享文件夹:
sudo umount /home/'user'/share
然后用指定参数重新挂载,注意gid=109是你从/etc/group里查到的vboxsf组ID,直接用就行:
sudo mount -t vboxsf -o rw,nodev,relatime,iocharset=utf8,gid=109,dmode=0770,fmode=0770 share /home/'user'/share
挂载完成后再测试:
sudo -u tomcat less /home/'user'/share/tomcat/lib/jspwiki-custom.properties
应该就能正常查看文件内容了。
二、永久配置(重启后依然生效)
因为你用的是VirtualBox的Auto-mount功能,有两种方式实现永久配置:
方式1:修改VirtualBox共享文件夹配置
打开VirtualBox管理器,找到你的Arch虚拟机:
- 右键选择「设置」→「共享文件夹」
- 选中你的
share共享文件夹,点击「编辑」 - 在「挂载选项」里填入
iocharset=utf8,gid=109,dmode=0770,fmode=0770 - 保存设置后重启虚拟机,挂载参数就会自动带上这些配置
方式2:编辑/etc/fstab文件
如果VirtualBox的自动挂载配置不好改,直接编辑/etc/fstab添加条目:
sudo nano /etc/fstab
在文件末尾添加一行:
share /home/'user'/share vboxsf rw,nodev,relatime,iocharset=utf8,gid=109,dmode=0770,fmode=0770 0 0
保存退出后,执行下面的命令让配置生效:
sudo mount -a
这样下次开机时共享文件夹就会自动用指定参数挂载了。
补充说明
为什么Debian能正常访问?因为Debian的VirtualBox相关包(比如virtualbox-guest-utils)默认配置了这些权限参数,而Arch/Manjaro的默认配置没有,所以需要手动补上这些挂载选项,确保共享文件夹的组权限能正确应用到vboxsf组里的Tomcat用户。
备注:内容来源于stack exchange,提问作者ngong
相关产品推荐
相关产品推荐

