我使用Ansible設置Ubuntu Vagrant環境(使用VirtualBox提供程序)。我正在使用guest/Vagrant機器同步主機/本地機器上的目錄。與Vagrant和Ansible同步文件夾時由root擁有的用戶主目錄
有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
用戶和組,我請將uid
和gid
指定爲5000
。這似乎是做事情的可接受方式之一。
然而,這導致deploy
用戶的主目錄被root
擁有的,而不是有其文件的全套:
[email protected]:~$ 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
[email protected]:~$ 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
[email protected]:~$ 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,再有顯著差異:
[email protected]:~$ 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
[email protected]:~$ 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/deploy
通過root
擁有?爲什麼deploy
用戶不能獲得.profile
,.bash_logout
等文件?而且,最重要的是,我該如何糾正這一點?
我想知道爲什麼這是從serverfault移動。我幾乎把它貼在了stackoverflow上 - 因爲我的大部分問題都在這裏被問到 - 但認爲它更像是一個服務器錯誤的東西,所以問它,作爲我的第一個問題,在那裏!不是問題,我只是好奇。 –