我正在运行 Ubuntu 来宾 VirtualBox 实例。我有一个web-server
与访客共享的主机文件夹。在来宾上,有两个用户需要对共享文件夹进行写访问:守护程序用户www-data
和我将调用的常规 SSH 登录用户jdoe
,他们都是我将调用的组的成员www-users
在主机上,该文件夹如下所示:
$ ls -al /Users/jdoe/web-server
drwxrwsr-x 14 jdoe staff 448 Jun 19 11:04 .
在来宾上,该文件夹安装有:
$ mount -t vboxsf -ogid=www-users web-server /usr/share/host/web-server
以及正在运行的mount
节目:
web-server on /usr/share/host/web-server type vboxsf (rw,nodev,relatime)
我也尝试过添加jdoe
到该vboxsf
组;jdoe
有以下组:
jdoe adm sudo vboxsf ssl-cert www-users
虽然该设置似乎可以在 Windows 和 Ubuntu 主机上运行,但在 OS X 上,来宾用户没有对该文件夹的可写访问权限。来宾的权限显示为:
$ ls -al /usr/share/host/web-server
drwxrwxr-x 1 root www-users 448 Jun 19 11:04 .
但是当登录为 时jdoe
,我无法写入该文件夹:
$ touch /usr/share/host/web-server/foo
touch: cannot touch '/usr/share/host/web-server/foo': Permission denied
如果我将挂载更改为-ouid=jdoe,gid=www-users
,则jdoe
可以写入它,如果我将其更改为-ouid=www-data,gid=www-users
,则www-data
可以写入它。无论哪种情况,其他成员都www-users
无法写入该文件夹。
另请注意,我不能依赖 VirtualBox 自动安装,因为这需要像在生产中那样工作,驱动器是动态安装的。
答案1
你能试试这个吗?
mount -t vboxsf -ouid=root,gid=www-users,fmode=664,dmode=775 web-server /usr/share/host/web-server