由于/ 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
答案 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>
在主机上的同步文件夹中设置粘滞位。
我要感谢我的同事给我这个答案。