使用NFS错误权限的Vagrant synced文件夹

时间:2016-01-20 01:00:22

标签: vagrant vagrantfile vagrant-plugin

尝试将NFS插件与Vagrant中的同步文件夹一起使用,它正在运行,但在guest虚拟机(VM)中权限是错误的:

-rw-r--r-- 1  501 dialout    0 Jan 20 00:51 a
-rw-r--r-- 1  501 dialout    0 Jan 20 00:51 foo

我尝试根据uid中的Vagrant文​​档设置gidVagrantfile

config.nfs.map_uid = 1001
config.nfs.map_gid = 1001

我希望在访客中使用正确的用户/群组,但它仍在使用501dialout

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这在MacOS Catalina主机和Ubuntu 18.04来宾(Vagrant 2.2.9,VirtualBox 6.1.12)上为我工作:

opts = {
  type: 'nfs',
  linux__nfs_options: ['no_root_squash'],
  map_uid: 0,
  map_gid: 0
}

config.vm.synced_folder '.', '/var/www/project', opts

然后您可以像往常一样chownchmod

$ sudo chown -R vagrant:vagrant /var/www/project
$ sudo chmod -R 774 /var/www/project/logs

注意no_root_squash适用于开发环境,但请勿用于生产环境。它允许远程root用户更改共享文件系统中的任何文件。

另一个选择可能是使用vagrant-bindfs插件。但是我不想为此安装和配置额外的插件。

答案 1 :(得分:-3)

我有同样的问题。它是在我将MacOS升级到mcOS Sierra版本10.12.1之后开始的。对我有用的技巧是在Vagrantfile中设置/强制所有者和组到'vagrant'用户,如下所示:

    config.vm.synced_folder "/users/myuser/src/", "/home/vagrant/src/", owner: "vagrant", group: "vagrant"

我还必须删除先前在Vagrantfile中的'nfs:true'设置。