以其他用户身份挂载共享文件夹 (vbox)

dmm*_*mmd 6 ubuntu virtualbox mount

每次我的 ubuntu 启动时,我都试图挂载我的 vbox 共享文件夹。

所以,我在 /etc/init 上添加了一个条目:

description     "mount vboxsf Desktop"

start on startup

task
exec mount -t vboxsf Desktop /var/www/shared
Run Code Online (Sandbox Code Playgroud)

似乎工作,除了所有文件都归“root”所有,而且我无权在文件夹上写入(chmod 和 chown 似乎都没有工作)。

那么,如何使该共享文件夹下的所有文件都归 www-data 用户/组所有?

谢谢


ps:我有一个自动共享文件夹的主要原因是我可以从 GUEST www 文件夹上的 HOST 创建/编辑文件。

如果您对此有更好的想法,而不是共享文件夹,请随意说。

dmm*_*mmd 14

[与以下答案相同:StackOverflow ]

好吧,虽然我有另一个与我的共享文件夹相关的问题,但我最终得到了这个 stackoverflow 问题:https : //stackoverflow.com/questions/6298933/shared-folder-in-virtualbox-for-apache

它以两种方式帮助了我,似乎我需要的是那些 uid 和 gid 选项。

因此,要以另一个用户身份挂载共享文件夹,我将运行:

mount -t vboxsf SHARE_NAME /some/dir -o uid=48,gid=48
Run Code Online (Sandbox Code Playgroud)

另外,要查看您的www-datagiduid 是什么,只需运行id www-data.

如果您还需要更改已挂载文件的权限,只需在选项中添加“dmode”,如下所示:

sudo mount -t vboxsf SHARE_NAME -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /path/on/guest
Run Code Online (Sandbox Code Playgroud)

可用的选项是(来自mount的帮助):

rw         mount read write (default)
ro         mount read only
uid       =<arg> default file owner user id
gid       =<arg> default file owner group id
ttl       =<arg> time to live for dentry
iocharset =<arg> i/o charset (default utf8)
convertcp =<arg> convert share name from given charset to utf8
dmode     =<arg> mode of all directories
fmode     =<arg> mode of all regular files
umask     =<arg> umask of directories and regular files
dmask     =<arg> umask of directories
fmask     =<arg> umask of regular files
Run Code Online (Sandbox Code Playgroud)

如果您需要它在系统初始化期间运行,只需在 /etc/init/SOMETHING.conf 上创建一个文件,如下所示:

description     "SOME DESCRIPTION"

start on startup

task
exec mount -t vboxsf SHARE_NAME /path/on/guest -o uid=1000,gid=33
Run Code Online (Sandbox Code Playgroud)