chmod无法更改Vagrant VM中的权限

时间:2015-03-03 19:38:49

标签: cygwin vagrant snowplow

我正在尝试设置一个Vagrant环境来托管Snowplow(https://github.com/snowplow)。当我从cygwin shell发射vagrant时

  

$ vagrant up&&流浪汉ssh

我进入Ubuntu访客映像(12.04),当我尝试使用ansible将java8安装到此环境中时,我收到此消息:

  

vagrant @ precise64:〜$ ansible-playbook   /vagrant/ansible-playbooks/java8-gradle.yml   --inventory-file = / vagrant / home / ansible / ansible_hosts --connection = local ERROR:文件/ vagrant / home / ansible / ansible_hosts被标记为可执行文件,但无法正确执行。如果是这样的话   不应该是可执行脚本,请使用chmod -x /vagrant/home/ansible/ansible_hosts更正此内容。

该文件确实是777:

  

-rwxrwxrwx 1 vagrant vagrant 24 Mar 3 19:03 ansible_hosts *

但同一个文件同步到主机(Windows),cygwin将文件显示为644:

  

-rw-r - r-- 1 rcoe Domain Users 24 Mar 3 14:03 ansible_hosts

在无头(VirtualBox)Vagrant环境中是否存在已知问题,该环境不允许在与主机同步的文件上设置权限?

感谢。

1 个答案:

答案 0 :(得分:7)

这是一个已知的缺陷,但据报道不是一个错误:Changing shared folder permissions from within virtual machine

如何在vagrant中设置同步文件夹以便满足您的需求,这是一个很好的tutorial - 如果您导航到该链接,它将显示以下代码段

config.vm.synced_folder "./", "/var/sites/dev.query-auth", id: "vagrant-root",
   owner: "vagrant",
   group: "www-data",
   mount_options: ["dmode=775,fmode=664"]

显示如何调整同步文件夹的权限。

或者您也可以使用另一种同步文件夹的方法,例如rsync(请记住trade-offs是什么)

config.vm.synced_folder "/Users/ryansechrest/Projects/Sites", "/var/www/domains", 
   type: "rsync"

有关here

的更多信息