更改/ vagrant的权限

时间:2014-04-18 20:22:08

标签: virtualbox vagrant

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

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

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

Vagrant版本1.5.3

我的Vagrantfile

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

4 个答案:

答案 0 :(得分:3)

在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.

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

回答你的问题

  

我可以使用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>在主机上的同步文件夹中设置粘滞位。

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