Vagrant osx上对provision.sh的流浪许可被拒绝

Vagrant osx上对provision.sh的流浪许可被拒绝,vagrant,vagrantfile,Vagrant,Vagrantfile,我遇到了一个与在OS X上运行一个带有之前在Windows上成功测试过的文件/配置的盒子有关的问题。box具有完全在VM上运行Ansible的特殊性,但我认为问题已经出现了 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.hostname = "rubicon.vm" config.vm.p

我遇到了一个与在OS X上运行一个带有之前在Windows上成功测试过的文件/配置的盒子有关的问题。box具有完全在VM上运行Ansible的特殊性,但我认为问题已经出现了

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/trusty64"

  config.vm.hostname = "rubicon.vm"

  config.vm.provider :virtualbox do |vb|
      vb.customize ["modifyvm", :id, "--cpus", "2" ]
      vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
  end

  config.vm.network "forwarded_port", guest: 8888, host: 8888
  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.synced_folder ".", "/vagrant"

  config.vm.provision :shell,
    :keep_color => true,
    :inline => "export PYTHONUNBUFFERED=1 && export ANSIBLE_FORCE_COLOR=1 && cd /vagrant && ./provision.sh"
end
我在设置步骤中遇到错误:

/tmp/vagrant-shell: line 1: ./provision.sh: Permission denied
为了验证(1)provision.sh是否已找到,以及(2)用户是否应为root用户并具有所有权限,我使用以下命令修改了provision行:

:inline => "cd /vagrant && ls -al && echo $USER &&  ./provision.sh"
结果是:

==> default: drwxr-xr-x  1 vagrant vagrant  204 Aug 12 10:06 .
==> default: drwxr-xr-x 23 root    root    4096 Aug 12 10:12 ..
==> default: drwxr-xr-x  1 vagrant vagrant  136 Aug 11 14:28 ansible
==> default: -rw-r--r--  1 vagrant vagrant  767 Aug 11 14:35 provision.sh
==> default: drwxr-xr-x  1 vagrant vagrant  102 Aug 11 14:30 .vagrant
==> default: -rwxr-xr-x  1 vagrant vagrant  785 Aug 12 10:06 Vagrantfile
==> default: root
==> default: /tmp/vagrant-shell: line 1: ./provision.sh: Permission denied

所以这并不奇怪。

您需要在provision.sh上授予执行权限

chmod +x provision.sh

看起来它在工作。谢谢!我想这更多的是对Linux文件系统的误解,而不是流浪汉本身。根用户在默认情况下不能执行任何东西吗?文件必须具有执行权限,任何人都可以执行它。如果文件没有执行权限,可以使用source somefile.sh,但这需要更多的键入。