Vagrant 同步文件夹使用 NFS 错误权限

标签 vagrant vagrantfile vagrant-plugin

尝试在 Vagrant 中使用带有同步文件夹的 NFS 插件,它正在工作,只是在 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

我尝试根据 Vagrantfile 中的 Vagrant 文档设置 uidgid:

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

我希望在 guest 中使用正确的用户/组,但它仍然使用 501dialout

有什么想法吗?

最佳答案

这对我在 MacOS Catalina 主机和 Ubuntu 18.04 guest (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插入。但我不想为此安装和配置额外的插件。

关于Vagrant 同步文件夹使用 NFS 错误权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889729/

相关文章:

azure - Vagrant-Azure : Guest machine can't connect to host machine (Unable to copy SMB files)

ruby - vagrant-aws 插件安装错误

ruby - 如何在 Ubuntu 14.04 中为 Vagrant 安装 Ruby 版本 >= 2.0?

azure - 运行 vagrant up 命令时出错

node.js - 在 Vagrant 中启动 npm 后的 Web 应用程序 URL

plugins - Vagrant无法安装依赖nokogiri的插件

ruby-on-rails - RoR Heroku 的 Chef Recipe

Vagrant 提供 salt : The function "state.highstate" is running

Vagrant 多虚拟机 ssh 不工作

vagrant - 无法从环境生产源检索信息