我已经在 Fedora 11 (x86_64) 主机系统上设置了 VirtualBox Fedora 11 (i386) 客户机,并启用了共享文件夹。我使用推荐的“mount -t vboxsf share /shareddir -o rw,exec,uid=500,gid=100”命令成功挂载了共享文件夹。我可以从客户机成功读取和写入共享中的文件,但我无法从客户机系统设置共享中任何文件的执行位。GoogleSpace 中似乎没有任何东西可以解决我的问题,更不用说提供解决方案了。fwiw,selinux 在客户机和主机上都已禁用,共享文件夹是 ext4 文件系统。
答案1
解决方案:
- 挂载 VBoxGuestAdditions.iso(例如
/media/cdrom0
) mkdir vbox && cd vbox && /media/cdrom0/VBoxLinuxAdditions.run --tar -xf
- 编辑
module/vboxvfs/utils.c
,将第 96 行更改mode |= mode_set (IXUSR);
为mode |= S_IXUSR;
(注意添加前缀S_
......基本上,始终设置可执行标志) sudo ./install.sh vfs-module
cd .. && rm -rf vbox
这只会在客户机中为所有共享文件设置可执行标志(模式 700)——主机仍然始终为新创建的文件获取模式 500。希望开发人员可以做出适当的修复。(略有改进:在创建新文件时设置可执行文件,并保持文件权限同步,这样主机中的非可执行文件就不会在客户机中显示为可执行文件)
至少这让我可以在共享目录中进行开发。