我正在使用 Virtualbox。我在 Windows 主机上有一个 NixOS 客户机。我将用户添加到vboxsf
组中,然后重新启动機器。
$ groups
users wheel vboxsf
我可以以 root 身份访问共享文件夹,但不能以非 root 用户身份访问。
$ ls /media/sf_VMShare
ls: cannot access '/media/sf_VMShare': Permission denied
$ sudo ls /media/sf_VMShare
<directory listing...>
挂载点的所有权似乎是正确的。
$ sudo umount /media/sf_VMShare
$ sudo ls -l /media
total 4
drwxrwx--- 2 amy vboxsf 4096 Nov 22 17:38 sf_VMShare
我已经看到了这个问题作为 vboxsf 组成员访问 VirtualBox 共享文件夹时权限被拒绝,并且已经尝试了接受的答案,但没有成功。
编辑:随着驱动器安装...
$ sudo ls -ld /media/sf_VMShare
drwxrwx--- 1 root vboxsf 0 Nov 21 15:31 /media/sf_VMShare
答案1
Unix 和 Linux SE 上有这个问题:访问子目录时父目录的权限是否重要?答案是肯定的,它们确实很重要。
确切的规则是:当且仅当您对目录具有执行权限时,您才可以遍历该目录。
例如,要访问
dir/subdir/file
,您需要执行权限,dir
并且dir/subdir
[...]
我猜想,在你的情况下,用户可能/media
首先无法遍历(或者在理论上甚至无法遍历/
,但这会带来其他明显的问题)。 现有的权限可能是有原因的,因此在更改权限之前请三思。如果可能,/media
另一种方法是在其他地方安装。sf_VMShare
答案2
对我来说,使用 VirtualBox 6.0 更简单
- 我已将我的用户添加到 vboxfs 组
sudo usermod -aG vboxsf $(whoami)
- 重启虚拟机
测试
- 通过 /media/imac 在主机上创建外部磁盘共享
abkrim@imail:~$ ls -lisah /media/
total 12K
8193 4.0K drwxr-xr-x 3 root root 4.0K Aug 23 19:44 .
2 4.0K drwxr-xr-x 24 root root 4.0K Aug 23 18:42 ..
1 4.0K drwxrwx--- 1 root vboxsf 4.0K Aug 11 11:02 imac
abkrim@imail:~$ ls -lisah /media/imac/
total 374G
1 4.0K drwxrwx--- 1 root vboxsf 4.0K Aug 11 11:02 .
8193 4.0K drwxr-xr-x 3 root root 4.0K Aug 23 19:44 ..
17 374G -rwxrwx--- 1 root vboxsf 374G Aug 12 19:00 iMac-2019-05-24-124025.tar.bz2
abkrim@imail:~$ touch /media/imac/deleteme
abkrim@imail:~$ ls -lisah /media/imac/
total 374G
1 4.0K drwxrwx--- 1 root vboxsf 4.0K Aug 23 19:44 .
8193 4.0K drwxr-xr-x 3 root root 4.0K Aug 23 19:44 ..
18 0 -rwxrwx--- 1 root vboxsf 0 Aug 23 19:44 deleteme
17 374G -rwxrwx--- 1 root vboxsf 374G Aug 12 19:00 iMac-2019-05-24-124025.tar.bz2
完美运行。
但在我的系统中,selinux 是禁用的。在我看来,对于肯定用于开发或内部使用的虚拟机,默认启用 selinux 是没有多大意义的。这有点偏执
abkrim@imail:~$ sestatus
SELinux status: disabled