Vagrant 流浪和同步文件夹:如何将所有者设置为默认流浪用户以外的用户?

Vagrant 流浪和同步文件夹:如何将所有者设置为默认流浪用户以外的用户?,vagrant,puppet,vagrantfile,synced-folder,Vagrant,Puppet,Vagrantfile,Synced Folder,我正试图在一个有许多活动部件的CoreOSVagrant虚拟机中为Rails 2项目建立一个开发环境。 一旦虚拟机被配置好,就会有一个Puppet脚本安装并启动所有的位和块 我正在处理的位,在我的本地机器(OS X 10.10.5)上,通过同步文件夹暴露在虚拟机中,并显示在虚拟机的正确位置,其所有者为vagrant和组为vagrant 为了使其与系统的其余部分协同工作,需要将该文件夹的owership设置为projectx 简单地告诉Puppet设置权限是行不通的。它们不会改变。我已经通过手动c

我正试图在一个有许多活动部件的
CoreOS
Vagrant虚拟机中为Rails 2项目建立一个开发环境。 一旦虚拟机被配置好,就会有一个
Puppet
脚本安装并启动所有的位和块

我正在处理的位,在我的本地机器(OS X 10.10.5)上,通过
同步文件夹
暴露在虚拟机中,并显示在虚拟机的正确位置,其所有者为
vagrant
和组为
vagrant

为了使其与系统的其余部分协同工作,需要将该文件夹的owership设置为
projectx

简单地告诉
Puppet
设置权限是行不通的。它们不会改变。我已经通过手动
chown
chown文件确认了这一点,并且它们没有改变

我不能在
Vagrantfile
中将用户设置为,直到
Puppet
完成它的工作,才有
projectx
用户

看起来我唯一的解决方案是破解
Puppet
文件,并消除
projectx
用户的使用,但我更愿意找到一种方法来设置
同步文件夹的所有者,因为那样会更干净


如何将
同步文件夹的所有权设置给在VM设置完成后才创建的用户?

不幸的是,没有简单的方法可以做到这一点

常见的解决方法是在同步文件夹配置中使用uid和gid。通过这种方式,您可以作为稍后将添加到系统的用户创建同步文件夹

projectx_uid = 1001
projectx_gid = 1001
config.vm.synced_folder "src/", "/srv/website",
  owner: projectx_uid, group: projectx_guid0
这意味着
projectx
应该在配置过程的一开始就创建,这样它就具有可预测的uid/gid


《流浪汉追踪器》中的相关问题:

效果不错。我只是在puppet文件中手动指定了
gid
uid
,用于谷歌索引的相关错误消息:“Vagrant无法装载VirtualBox共享文件夹…没有这样的用户”