UbuntuゲストVirtualBoxインスタンスを実行しています。ゲストと共有しているホストフォルダweb-server
があります。ゲストには、共有フォルダーへの書き込み可能なアクセスが必要な2人のユーザーがいます。デーモンユーザーwww-data
と、jdoe
と呼ぶ通常のSSHログインユーザーです。どちらもメンバーです。グループ私は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の自動マウントは、ドライブがオンザフライでマウントされる本番環境と同じように機能する必要があるため、信頼できません。
これを試してみませんか?
mount -t vboxsf -ouid=root,gid=www-users,fmode=664,dmode=775 web-server /usr/share/Host/web-server