Vagrant共享/同步文件夹权限

时间:2014-09-17 14:48:58

标签: symfony permissions vagrant virtualbox

根据我的研究,我了解VirtualBox同步文件夹在安装过程中设置了权限。后来,我无法更改它,因此对于共享文件夹中的每个文件/文件夹,整个同步文件夹的权限必须相同。尝试使用或不使用超级用户权限进行更改时,会立即恢复更改。

如何使用例如Symfony PHP框架,其中对不同的文件/文件夹有多种不同的权限? (即app / console需要执行权限,但我不希望到处都有7XX。)

我在不同但相似的问题(Vagrant and symfony2)中找到了我可以为Vagrantfile中的所有内容设置777的权限,但这是不可取的,因为我需要在我的源代码后面使用GIT部署到实时环境。在生产中运行777以下的所有东西,很好地说,不正确。

你们如何应对这种情况?您的权限设置是什么?

3 个答案:

答案 0 :(得分:0)

可能的解决方案可能是使用rsync synced folder strategy以及vagrant rsyncvagrant rsync-auto命令。

通过这种方式,您将失去双向同步,但您可以管理文件权限和所有权。

答案 1 :(得分:0)

现在,当我有更多经验时,我实际上可以回答这个问题。

这个问题有3个解决方案:

  • 在主机系统中使用Git ,因为vagrant basic shared folders以某种方式设置强制777(至少在Windows主机上)
  • 使用来自流浪者的 NFS shared folders 选项(Windows上不可用)
  • 配置更复杂的 rsync ,如Emyl's answer(较慢的同步速度)中所述。

答案 2 :(得分:0)

我处于类似情况。我开始使用Vagrant挂载选项,并发现当我升级我的技术堆栈(内核,Virtualbox,Vagrant,Guest Additions)的部分时,我开始尝试在同步文件夹中设置权限时获得不同的行为。

在某些时候,我完全可以更新shell配置程序中的一些权限。起初,这些变化正在客人和主持人身上反映出来。在另一个时间点,它按照我预期的方式完成,更改仅反映在guest虚拟机而不是主机文件系统中。在我的主机上更新内核和VB后,我注意到guest虚拟机中的权限更改仅在主机上反映出来。

我试图使用DKMS针对旧版本的内核编译VBOX。没有运气了。