【问题标题】:Vagrant synced folder permissionsVagrant 同步文件夹权限
【发布时间】:2016-06-18 20:50:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: vagrant virtualbox vagrantfile


    【解决方案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"]
    

    【讨论】:

    • 此解决方案可能不适用于 vagrant 的新初始化,因为自定义用户和/或组可能不存在于框中。
    • @MingalevME 在安装 Apache 之前,我正在为 Ubuntu 上的 Apache 用户和组 (www-data) 执行此操作,并且工作正常。见:unix.stackexchange.com/questions/305170/…
    • 是否可以在配置脚本中将 www-data 用户添加到组 vagrant 中?这样所有者用户和组可以保持 vagrant 但用户 www-data 仍然具有 vagrant 的权限。只是一个想法......
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      相关资源
      最近更新 更多