将共享文件夹(vbox)挂载为另一个用户

dmm*_*mmd 10 ubuntu mount virtualbox ubuntu-10.04

我很抱歉在这里问这个问题,但是我试过了serverfault并且4天没有得到任何答案.

那里的相关问题:https://serverfault.com/questions/394197/mount-shared-folder-vbox-as-another-user


题:

每次我的ubuntu(10.04)启动时,我都试图挂载我的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 user/group所有呢?


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

如果你有更好的想法,而不是共享文件夹,可以自由地说.

dmm*_*mmd 21

好吧,当我有另一个与我的共享文件夹相关的问题时,我最终得到了这个stackoverflow问题: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 YOUR_SHARE_NAME /path/on/guest -o uid=1000,gid=33
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了很多,直到我发现`SHARE_NAME`只是我在我的VirtualBox设置中定义的简单共享名,没有路径`/ media/...`然后它工作;) (3认同)