情况是这样的——
- 我有一个 1TB 驱动器安装在
/data
. - 桌面上有多个本地用户。全部都在
localusers
群里 - 我有一个 virtualbox 虚拟机,其 50 GB VDI dsik 存储在
/data/common/vms
我希望该组的所有成员都可以使用 virtualbox 虚拟机localusers
。
到目前为止我所做的:
- 作为主用户,创建虚拟机
- 将 vbox 机器文件夹移动到
/data/common/vbox
[所以如果机器是 Win10Pro,那么我的文件夹位于/data/common/vbox/Win10Pro
] - 组权限 - 文件夹组
localusers
和chmod -R g+rw /data/common/vbox /data/common/vms
- 复制
~/.Virtualbox/Virtualbox.xml
并调整默认计算机文件夹和计算机条目以指向/home/user/VirtualBox VMs
。 ln -sf /data/common/vbox/Win10Pro ~/VirtualBox VMs/Win10Pro
对于每个用户
问题
这只有效一次...如果作为用户 XI 打开 virtualbox 并启动计算机,则/data/common/Win10Pro/*
在 Virtualbox GUI 退出后,文件的权限将仅恢复为该用户的 rw。
附:早些时候,我使用 toe 将磁盘格式化为 exfat,并且能够使用 uid 和 gid 掩码实现共享磁盘/虚拟机,但这不适用于 ext4。
答案1
对于那些遇到类似困境的人,我在 Reddit 上发布了这个问题,很快就被指出了正确的方向
基本上:
- 设置
setgid
共享文件夹上的位/data/common
rwx
将用户和组的默认 acl 设置为:setfacl -d -m u::rwx,g::rwx,o::r-x /data/common
此处提供了更详细的演练 http://brunogirin.blogspot.com/2010/03/shared-folders-in-ubuntu-with-setgid.html
这篇文章来自 2010 年 - 所以唯一的区别是我不需要安装任何软件包或设置安装选项 - ACL 默认情况下处于启用状态