Vagrant同步文件夹权限

时间:2016-03-04 22:56:11

标签: vagrant virtualbox vagrantfile

我已经在Vagrant中设置了一个同步文件夹,从我的Windows主机到访客。最初文件的权限太开放了,所以我添加了以下挂载选项:

config.vm.synced_folder "../my-folder", "/home/vagrant/my-folder",
    mount_options: ["dmode=775,fmode=664"]

但是,我需要在此文件夹中的单个文件上添加执行权限。 chmod +x file无效。有没有办法允许共享文件夹中的单个项目可执行/对文件夹中其余项目具有不同的权限?

2 个答案:

答案 0 :(得分:12)

最后,我想出了两个解决方案:

1)接受所有可执行的文件

config.vm.synced_folder "../my-folder", "/home/vagrant/my-folder",
    mount_options: ["dmode=775,fmode=777"]

2)使用rsync方法同步文件夹

config.vm.synced_folder "../ansible-provision", "/home/vagrant/ansible", type: "rsync",
    rsync__exclude: ".git/"

每种方法都有自己的缺点,但第一种方法实现最快,可以接受我的用例,所以我选择了。

答案 1 :(得分:1)

我遇到了与文件夹权限类似的问题。我在Mac OSX上使用virtualbox。我添加了所有者和组选项,修复了我无法写入服务器上的缓存目录的问题。更新以包括文件夹和文件模式。

srv.vm.synced_folder server["synced_folder"]["src"], server["synced_folder"]["dest"], create: true, group:'vagrant', owner:'www-data', mount_options: ["dmode=775,fmode=664"]