在创建Ubuntu VM时,我提供了一个配置脚本,用于在安装guest虚拟机操作系统后安装某些软件包。
config.vm.provision :shell, :path => "vm_provision/provision-node01.sh"
bash脚本包含:
#!/usr/bin/env bash
# Intended for Ubuntu 14.04 (Trusty)
# Update the Ubuntu
sudo apt-get -y update
sudo apt-get -y install build-essential
mkdir zookeeper
https://github.com/apache/zookeeper
创建VM以及上面的shell脚本命令也可以正常执行。但是,文件夹“zookeeper”的默认所有者和组权限都设置为root。
vagrant@ubuntu-14:~$ ls -lrt
total 4
drwxr-xr-x 4 root root 4096 Mar 30 08:55 zookeeper
我希望它是流浪汉流浪汉,所以我不会一直改变超级用户。
提供了设置共享文件夹的所有者/组权限的步骤,但这是通过Vagrantfile设置的。 Vagrant sync folder creation
在我的配置shell脚本中,我尝试在创建文件夹和克隆github repo之前更改用户(如下所示),但这没有帮助。
su - vagrant
答案 0 :(得分:1)
默认情况下,vagrant以root身份运行配置程序,您可以使用以下选项
更改此行为func foo() {
print(\(self.getDataPoint()))
}
与config.vm.provision :shell, :path => "vm_provision/provision-node01.sh", privileged: false
一起运行时(请参阅https://www.vagrantup.com/docs/provisioning/shell.html#privileged),配置程序将与privileged: false
用户一起运行。在你的情况下,你的脚本就像运行apt命令的sudo一样好了