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

13

很抱歉在这里提问,但我已经尝试了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

似乎工作正常,但所有文件都由“root”拥有,并且我没有在文件夹上写入的权限(chmod和chown都不起作用)。那么,如何使此共享文件夹下的所有文件都归属于www-data用户/组?
注:我自动共享文件夹的主要原因是我希望可以从HOST上创建/编辑GUEST www文件夹中的文件。如果您有更好的建议,请随时提出。
1个回答

25

嗯,当我遇到另一个与我的共享文件夹相关的问题时,我最终找到了这个stackoverflow的问题:VirtualBox中的共享文件夹

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

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

mount -t vboxsf SHARE_NAME /some/dir -o uid=48,gid=48

此外,要查看你的 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

可用的选项如下(来自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

如果您需要在系统初始化期间运行它,只需在 /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

4
我尝试了很多次,直到我发现SHARE_NAME只是我在VirtualBox设置中定义的纯共享名称,不带路径/media/...,然后它就可以工作了 ;) - rubo77
由于某些原因,在我的Debian VM中,这不是一个永久的解决方案。每次重新启动后,我都需要重新输入上述代码。 - Lanti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接