Vagrant同步文件夹权限

17

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

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

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

2个回答

23

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

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/"

每种方法都有自己的缺点,但第一种方法实现最快并且符合我的使用情况,所以我选择了它。


4

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

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"]

这个解决方案可能无法适用于Vagrant的新初始化,因为自定义用户和/或组在虚拟机中可能不存在。 - MingalevME
@MingalevME 我正在为 Ubuntu 上的 Apache 用户和组(www-data)执行此操作,在安装 Apache 之前,它可以正常工作。请参见:https://unix.stackexchange.com/questions/305170/is-it-ok-to-have-files-owned-by-a-non-existent-user - Felipe Zavan
2
在你的配置脚本中,是否可以采用另一种方法,将www-data用户添加到vagrant组中呢?这样,所有者用户和组仍然可以保持为vagrant,但用户www-data仍然具有vagrant的权限。只是一个想法... - Kalle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接