以另一个用户身份挂载共享文件夹(vbox)

以另一个用户身份挂载共享文件夹(vbox)

每次我的 ubuntu 启动时我都会尝试挂载我的 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

[答案与以下内容相同:堆栈溢出]

好吧,当我遇到与共享文件夹相关的另一个问题时,我最终遇到了这个 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

另外,要了解你的www-数据用户ID, 赶紧跑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 SHARE_NAME /path/on/guest -o uid=1000,gid=33

答案2


如果您想在主机和客户机之间共享文件,您可以轻松运行 Web 服务器,而不是硬共享文件夹。请注意,在我的命令中,主机和客户端是 Ubuntu 14.04:在主机中:

mkdir /home/SomeDirectory
cd /home/SomeDirectory
python -m SimpleHTTPServer


假设主机ip为(10.1.0.110),现在在客户机中,使用以下命令打开目录:

xdg-open http://10.1.0.110:8000

请注意,上面的端口可能与 8000 不同。xdg-open 位于 xdg-utils 包中。如果您之前没有安装它,请在客户机中运行以下命令:

sudo apt-get install xdg-utils

相关内容