没有 sudo 无法挂载 vbox 共享文件夹:“未知挂载选项‘用户’”

没有 sudo 无法挂载 vbox 共享文件夹:“未知挂载选项‘用户’”

我正在尝试设置一个可由任何用户挂载的 VirtualBox 共享文件夹,因此我输入了以下行/etc/fstab

# mint shared folder
mint /media/sf_mint vboxsf defaults,user,uid=1000,gid=999 0 0

但是,我收到此错误消息:

juanlu@minted ~ $ mount mint
Only root can mount shared folders from the host.
juanlu@minted ~ $ sudo !!
sudo mount mint
unknown mount option `user'
valid options:
  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

如果我删除该user选项,那么我将被迫使用,sudo但至少挂载点的所有者已正确分配。我在这里做错了什么?

请注意,这可能与以用户身份挂载 VBox 共享文件夹,但实际上我尝试了一个应该可行的选项。

答案1

作为在 VirtualBox 用户支持论坛中得到友好答复,vbox 共享文件夹实际上不是设备(如果是的话,它们将处于/dev/)和因此“用户”选项等等不适用。因此,不可能允许非管理员用户手动挂载共享文件夹。

但是,仍然可以自动挂载 vboxsf/etc/rc.local并自定义挂载选项。这类似于自动挂载,但允许为文件夹设置适当的掩码和权限,正如这里解释的那样。请注意,此页面是不完整它指向mount手册页来列出可用的选项列表,但事实上,其中一些并不适用,如上所示。

答案2

这看起来像是程序文件中的一个错误安装.vboxsf.c,它是 VirtualBox Guest Additions for Linux 的一部分,我相信你没有做错任何事。

在程序启动时,main() 函数会立即检查是否在 root 账户下执行,在处理参数之前,也就是在user检测或处理参数之前。

检查应该在稍后进行,即在进程(或其分支)的有效用户 ID 更改为指定的用户帐户之后。

你应该向 VirtualBox 开发人员报告此错误。
正确的论坛似乎是Linux 主机上的 VirtualBox(要求登录)。

答案3

您不一定需要该user选项来/etc/fstab允许普通用户挂载文件系统。

另一个选项是配置sudo为允许此操作,无论是否询问执行用户的密码。

man sudoers

身份验证和日志记录

sudoers 安全策略要求大多数用户在使用 sudo 之前先进行身份验证。如果调用用户是 root、目标用户与调用用户相同,或者策略已禁用用户或命令的身份验证,则不需要密码。

标签规范

[...]

NOPASSWD 和 PASSWD

默认情况下,sudo 要求用户在运行命令之前进行身份验证。此行为可以通过 NOPASSWD 标记进行修改。与 Runas_Spec 一样,NOPASSWD 标记会为 Cmnd_Spec_List 中紧随其后的命令设置默认值。相反,PASSWD 标记可用于逆转这种情况。例如:

雷·拉什莫尔 = NOPASSWD:/bin/kill、/bin/ls、/usr/bin/lprm

将允许用户 ray 在计算机 rushmore 上以 root 身份运行 /bin/kill、/bin/ls 和 /usr/bin/lprm,而无需进行身份验证。

因此,这样的一行/etc/sudoers将允许任何用户无需输入任何密码即可挂载指定的文件系统:

ALL ALL = NOPASSWD: /bin/mount mint

然后就sudo mount mint可以像普通用户一样工作了。

相关内容