Ubuntu 用户';将文件夹与Vagrant和Ansible同步时,根目录拥有的主目录

Ubuntu 用户';将文件夹与Vagrant和Ansible同步时,根目录拥有的主目录,ubuntu,vagrant,ansible,Ubuntu,Vagrant,Ansible,我正在使用Ansible设置一个Ubuntu Vagrant环境(使用VirtualBox提供程序)。我正在将主机/本地计算机上的目录与来宾/漫游计算机同步 有对同步文件夹的权限,因此我在我的文件中指定同步文件夹,如下所示: config.vm.synced_文件夹“/path/to/local/dir”, “/home/deploy/webapps/myapp”, 所有者:5000,组:5000,装载选项:['dmode=775','fmode=664'] 然后在一个Ansible任务中,当

我正在使用Ansible设置一个Ubuntu Vagrant环境(使用VirtualBox提供程序)。我正在将主机/本地计算机上的目录与来宾/漫游计算机同步

有对同步文件夹的权限,因此我在我的文件中指定同步文件夹,如下所示:

config.vm.synced_文件夹“/path/to/local/dir”,
“/home/deploy/webapps/myapp”,
所有者:5000,组:5000,装载选项:['dmode=775','fmode=664']
然后在一个Ansible任务中,当我创建
deploy
用户和组时,我将他们的
uid
gid
指定为
5000
。这似乎是公认的做事方式之一

但是,这会导致
deploy
用户的主目录归
root
所有,并且没有完整的文件:

deploy@vagrant-ubuntu-trusty-64:~$ls-al/主页
总数20
drwxr-xr-x 5根根根4096年3月1日17:20。
drwxr-xr-x 23根根目录4096三月1日17:20。。
drwxr-xr-x 5根根目录4096 Mar 1 17:23部署
drwxr-xr-x 3 ubuntu 4096年3月1日17:19 ubuntu
drwxr-xr-x 5流浪流浪者流浪者4096 Mar 1 17:20流浪者
deploy@vagrant-ubuntu-trusty-64:~$ls-al/home/deploy
总数24
drwxr-xr-x 5根根目录4096 Mar 1 17:23。
drwxr-xr-x 5根根目录4096年3月1日17:20。。
-rw-r--r--1根根根213 Mar 1 17:23.bashrc
drwxr-xr-x 12部署4096年3月1日17:26。pyenv
drwx-----2部署4096 Mar 1 17:20.ssh
drwxr-xr-x 3根根目录4096 Mar 1 17:20 Web应用程序
deploy@vagrant-ubuntu-trusty-64:~$ls-al/home/deploy/webapps
总数8
drwxr-xr-x 3根根目录4096 Mar 1 17:20。
drwxr-xr-x 5根根目录4096 Mar 1 17:23。。
drwxrwxr-x 1部署部署850 Mar 1 14:53 myapp
相比之下,如果我不同步Vagrant文件中的文件夹,则存在显著差异:

deploy@vagrant-ubuntu-trusty-64:~$ls-al/主页
总数20
drwxr-xr-x 5根根目录4096年3月1日17:30。
drwxr-xr-x 23根根目录4096三月一日17:30。。
drwxr-xr-x 5部署4096年3月1日17:37部署
drwxr-xr-x 3 ubuntu 4096年3月1日17:30 ubuntu
drwxr-xr-x 5流浪流浪者流浪者4096 3月1日17:30流浪者
deploy@vagrant-ubuntu-trusty-64:~$ls-al/home/deploy/
总数32
drwxr-xr-x 5部署4096年3月1日17:37。
drwxr-xr-x 5根根目录4096年3月1日17:30。。
-rw-r--r--1部署220 2014年4月9日。bash_注销
-rw-r--r--1部署部署3850 3月1日17:33。bashrc
drwx-----2部署4096 Mar 1 17:37.缓存
-rw-r--r--1部署675 2014年4月9日。配置文件
drwxr-xr-x 12部署4096年3月1日17:37。pyenv
drwx-----2部署4096三月1日17:30.ssh

那么,在同步该目录时,为什么
/home/deploy
属于
root
?为什么
部署
用户得不到
.profile
.bash\u注销
等文件?而且,最重要的是,我该如何纠正这一点?

我对Ubuntu等了解不够,无法100%确定这是怎么回事,但这似乎是合理的

我认为,当在
/home/deploy/webapps/myapp
上创建同步文件夹时,Vagrant正在创建
/home/deploy
目录及其内容,这是可以理解的。其所有者:组是
root:root

因此,稍后,当我的Ansible playbook创建
deploy
用户时,它看到它已经有了一个主目录,而不必费心创建它的
.bashrc
等,也不必重新设置它的用户:组权限


因此,为了避免这种情况,我将文件夹同步到了
/webapps/myapp
,并将Ansible playbook更改为该位置。似乎有效。

我很想知道为什么从serverfault中删除此项。我差点把它贴在stackoverflow上——我的大部分问题都是在这里问的——但我觉得它更像是一个服务器故障,所以就在那里问了它,这是我的第一个问题!没问题,我只是好奇。