尝试在 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 文档设置 uid
和 gid
:
config.nfs.map_uid = 1001
config.nfs.map_gid = 1001
我希望在 guest 中使用正确的用户/组,但它仍然使用 501
和 dialout
。
有什么想法吗?
最佳答案
这对我在 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
然后您可以照常chown
和chmod
:
$ 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/