Vagrant 设置默认共享权限

Fab*_*bio 32 virtualization permissions virtualbox vagrant

运行 vagrant 实例时,项目文件夹会/vagrant自动挂载。但是安装有以下权限

# ll -d /vagrant
drwx------ 1 vagrant vagrant 612 Jun 13 14:41 /vagrant/
Run Code Online (Sandbox Code Playgroud)

我需要将它安装在(至少)0770 上,但我找不到方法。如果我运行 mount 命令,我会看到这个输出

# mount
v-root on /vagrant type vboxsf (uid=1000,gid=100,rw)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了chmodchown/chgrp,但它们无法在该安装的文件夹上工作,因此我的 apache 用户无法访问该文件夹。我在 Vagrant 手册读到我可以更改所有者和组,但它没有提到任何关于权限的内容。

我怎样才能做到这一点?

另一种选择可能是切换到 NFS,但这样它就不能在 Windows 平台上工作,它需要编辑本地/etc/exports文件,它需要 root 权限,而且很烦人,所以我不想做这个改变。

Fab*_*bio 53

在我的 Vagantfile 中用这一行解决了 v1.3.2 及更高版本:

config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]
Run Code Online (Sandbox Code Playgroud)

1.2 版本之前的语法:

config.vm.share_folder("v-root", "/vagrant", ".", :extra => 'dmode=770,fmode=770')
Run Code Online (Sandbox Code Playgroud)

学分:http : //ubuntuforums.org/showthread.php? t= 1434884

对于 Vagrant 1.2,正确的语法是:

config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"
Run Code Online (Sandbox Code Playgroud)

学分:Aal

对于 v1.3.2 及更高版本,同步文件夹上的“额外”标志已更改为“mount_options”。选项需要在一个数组中,每个选项作为一个单独的字符串(而不是在以前的版本中两个选项都在一个字符串中)

  • 不知道为什么,但我需要一个稍微不同的语法:`config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"` (6认同)
  • 在 Vagrant 1.4.3 中,语法再次有点不同。对 Vagrantfile 的以下更改对我有用:config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{folder['id']} ", type: nfs, mount_options: ["dmode=777","fmode=666"] (3认同)
  • config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777,fmode=666"] 在 v1.3.2 上为我工作。 (2认同)