gpt4 book ai didi

ubuntu - 使用 Vagrant 和 Ansible 同步文件夹时,root 拥有的用户主目录

转载 作者:行者123 更新时间:2023-12-04 18:30:09 25 4
gpt4 key购买 nike

我正在使用 Ansible 设置一个 Ubuntu Vagrant 环境(带有 VirtualBox 提供程序)。我正在将我的主机/本地机器上的目录与 guest /Vagrant 机器同步。

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

config.vm.synced_folder "./path/to/local/dir",
"/home/deploy/webapps/myapp",
owner: 5000, group: 5000, mount_options: ['dmode=775', 'fmode=664']

然后在 Ansible 任务中,当我创建 deploy用户和组,我指定他们的 uidgid5000 .这似乎是公认的做事方式之一。

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

deploy@vagrant-ubuntu-trusty-64:~$ ls -al /home
total 20
drwxr-xr-x 5 root root 4096 Mar 1 17:20 .
drwxr-xr-x 23 root root 4096 Mar 1 17:20 ..
drwxr-xr-x 5 root root 4096 Mar 1 17:23 deploy
drwxr-xr-x 3 ubuntu ubuntu 4096 Mar 1 17:19 ubuntu
drwxr-xr-x 5 vagrant vagrant 4096 Mar 1 17:20 vagrant

deploy@vagrant-ubuntu-trusty-64:~$ ls -al /home/deploy
total 24
drwxr-xr-x 5 root root 4096 Mar 1 17:23 .
drwxr-xr-x 5 root root 4096 Mar 1 17:20 ..
-rw-r--r-- 1 root root 213 Mar 1 17:23 .bashrc
drwxr-xr-x 12 deploy deploy 4096 Mar 1 17:26 .pyenv
drwx------ 2 deploy deploy 4096 Mar 1 17:20 .ssh
drwxr-xr-x 3 root root 4096 Mar 1 17:20 webapps

deploy@vagrant-ubuntu-trusty-64:~$ ls -al /home/deploy/webapps
total 8
drwxr-xr-x 3 root root 4096 Mar 1 17:20 .
drwxr-xr-x 5 root root 4096 Mar 1 17:23 ..
drwxrwxr-x 1 deploy deploy 850 Mar 1 14:53 myapp

相比之下,如果我不在 Vagrantfile 中同步该文件夹,则存在显着差异:

deploy@vagrant-ubuntu-trusty-64:~$ ls -al /home
total 20
drwxr-xr-x 5 root root 4096 Mar 1 17:30 .
drwxr-xr-x 23 root root 4096 Mar 1 17:30 ..
drwxr-xr-x 5 deploy deploy 4096 Mar 1 17:37 deploy
drwxr-xr-x 3 ubuntu ubuntu 4096 Mar 1 17:30 ubuntu
drwxr-xr-x 5 vagrant vagrant 4096 Mar 1 17:30 vagrant

deploy@vagrant-ubuntu-trusty-64:~$ ls -al /home/deploy/
total 32
drwxr-xr-x 5 deploy deploy 4096 Mar 1 17:37 .
drwxr-xr-x 5 root root 4096 Mar 1 17:30 ..
-rw-r--r-- 1 deploy deploy 220 Apr 9 2014 .bash_logout
-rw-r--r-- 1 deploy deploy 3850 Mar 1 17:33 .bashrc
drwx------ 2 deploy deploy 4096 Mar 1 17:37 .cache
-rw-r--r-- 1 deploy deploy 675 Apr 9 2014 .profile
drwxr-xr-x 12 deploy deploy 4096 Mar 1 17:37 .pyenv
drwx------ 2 deploy deploy 4096 Mar 1 17:30 .ssh

那么,在同步该目录时,为什么是 /home/deployroot 所有?为什么不 deploy用户获取 .profile , .bash_logout等文件?而且,最重要的是,我该如何纠正这个问题?

最佳答案

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

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

所以,稍后,当我的 Ansible 剧本创建 deploy用户,它看到它已经有一个主目录,并且不需要创建它的 .bashrc等,或重新设置其用户:组权限。

因此,为避免这种情况,我已将文件夹同步到 /webapps/myapp相反,并更改了我的 Ansible 剧本以期望该位置。似乎工作。

关于ubuntu - 使用 Vagrant 和 Ansible 同步文件夹时,root 拥有的用户主目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com