【问题标题】:Changing permissions on /vagrant更改 /vagrant 的权限
【发布时间】:2014-04-18 20:22:07
【问题描述】:

由于 /vagrant 目录的文件权限和所有权,我无法在 vagrant 中访问我的 Apache 服务器。如何更改 /vagrant 的默认所有者和文件权限?

默认权限如下 drwx------ 1 vagrant vagrant 4096 Apr 18 19:53 vagrant

我可以对 Vagrantfile 进行哪些更改来覆盖我的默认权限?

流浪者版本 1.5.3

我的流浪文件

Vagrant.configure("2") do |config|
    config.vm.provider :virtualbox do |vb|
    #...
    end
config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]
end

【问题讨论】:

    标签: virtualbox vagrant


    【解决方案1】:

    在 Vagrant API 版本 2 中,您可以像这样共享文件夹:

    config.vm.synced_folder "/Direct/Path/To/Your/Folder", "/Direct/Path/To/The/Vagrant/Folder", :owner => "www-data", :group => "www-data"
    config.vm.synced_folder "/Direct/Path/To/Another/Folder", "/Direct/Path/To/The/Other/Vagrant/Folder", :owner => "www-data", :group => "www-data"
    

    您可以将此信息放在以下文本之后的块中:

    # Share an additional folder to the guest VM. The first argument is
    # the path on the host to the actual folder. The second argument is
    # the path on the guest to mount the folder. And the optional third
    # argument is a set of non-required options.
    

    我遇到了你描述的同样的问题,我通过这个方法修复了它。希望这可以帮助。关于这个问题的更多信息我强烈推荐RT(F)M.

    【讨论】:

    • 感谢您的回复!我已经尝试了几乎所有可能的 config.vm.synced_folder 语法,但仍然没有运气。
    • 很抱歉听到这个消息,我从来没有真正遇到过流浪者的问题。如果有什么尝试更新流浪者?重新安装?希望一切顺利。
    【解决方案2】:

    当我试图弄清楚如何做类似的事情时,我看到了一个选项:

    config.vm.synced_folder "./sites", "/var/sites/", id: "vagrant-root",
      owner: "vagrant",
      group: "www-data",
      mount_options: ["dmode=775,fmode=664"]
    

    【讨论】:

      【解决方案3】:

      通过将主机文件夹的权限更改为 755,然后运行 ​​vagrant reload,此问题已暂时解决。我几乎尝试了 config.vm.synced_folder 的所有语法,但无济于事。我的 vagrantfile 中的这些命令似乎在 vagrant up / reload 时被忽略了。

      【讨论】:

        【解决方案4】:

        回答你的问题

        我可以对 Vagrantfile 进行哪些更改来覆盖我的默认权限?

        我不知道,比你已经注意到的更多。

        通过更改主机上的权限来解决问题。一种方法是使用chmod -R g+w <synced folder> 使同步的文件夹组可写。 然后在 vagrant VM 中将 apache 服务器用户(ubuntu 上的 www-data)添加到带有 usermod -a -G www-data vagrant 的 vagrant 组。 -a 非常重要,因为这会将新组附加到该用户的组列表中。如果省略,则新组将替换旧列表。

        您还需要确保 vagrant VM 上的 umask 设置为 0022,umask 0022。然后重启apache服务器。

        您可能还需要在主机中的同步文件夹上设置粘性位,使用chmod -R +s <synced folder>

        我要感谢我的同事给我这个答案。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-10-21
          • 1970-01-01
          • 2014-06-16
          • 1970-01-01
          • 1970-01-01
          • 2014-11-17
          • 1970-01-01
          相关资源
          最近更新 更多