Vagrant虚拟机中chmod无法更改权限

6

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

$vagrant up && vagrant 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 错误:文件 /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环境下运行时,是否存在无法允许在同步到主机的文件上设置权限的已知问题?

谢谢。


我忘了提到我尝试更改客户机中文件的权限,但未能更改它们。即,我尝试使用chmod -x,如错误消息所述,作为vagrant用户和root用户。 - Robin Coe
1个回答

11

这是已知的缺陷,但据说不是一个错误:从虚拟机内更改共享文件夹权限

有一个很好的教程,可以告诉你如何设置vagrant中的同步文件夹,以满足您的需求 - 如果您转到该链接,它将显示以下代码片段

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

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

或者,您也可以使用另一种同步文件夹的方法,例如rsync(记住权衡)。

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

更多信息请点击这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接