Vagrant:如何设置默认所有者和组权限
Vagrant: How to set the default owner and group permissions
在创建 Ubuntu VM 时,我提供了一个配置脚本,以便在安装来宾 OS 后安装一些软件包。
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
虚拟机和上面一样被创建 shell 脚本命令也可以正常执行。但是,文件夹 'zookeeper' 的默认所有者和组权限均设置为 root。
vagrant@ubuntu-14:~$ ls -lrt
total 4
drwxr-xr-x 4 root root 4096 Mar 30 08:55 zookeeper
我希望它是 vagrant vagrant 这样我就不会一直更改为超级用户。
提供了设置共享文件夹 owner/group 权限的步骤,但这是通过 Vagrantfile 设置的。 Vagrant sync folder creation
在我的配置 shell 脚本中,我尝试在创建文件夹和克隆 github 存储库之前更改用户(如下所示),但这没有帮助。
su - vagrant
默认情况下 vagrant 运行s provisioner 为 root,您可以使用以下选项更改此行为
config.vm.provision :shell, :path => "vm_provision/provision-node01.sh", privileged: false
当 运行 privileged: false
(参见 https://www.vagrantup.com/docs/provisioning/shell.html#privileged)时,供应商将 运行 与 vagrant
用户。在你的情况下,这很好,因为你的脚本已经 sudo for 运行ning apt 命令
在创建 Ubuntu VM 时,我提供了一个配置脚本,以便在安装来宾 OS 后安装一些软件包。
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
虚拟机和上面一样被创建 shell 脚本命令也可以正常执行。但是,文件夹 'zookeeper' 的默认所有者和组权限均设置为 root。
vagrant@ubuntu-14:~$ ls -lrt
total 4
drwxr-xr-x 4 root root 4096 Mar 30 08:55 zookeeper
我希望它是 vagrant vagrant 这样我就不会一直更改为超级用户。
提供了设置共享文件夹 owner/group 权限的步骤,但这是通过 Vagrantfile 设置的。 Vagrant sync folder creation
在我的配置 shell 脚本中,我尝试在创建文件夹和克隆 github 存储库之前更改用户(如下所示),但这没有帮助。
su - vagrant
默认情况下 vagrant 运行s provisioner 为 root,您可以使用以下选项更改此行为
config.vm.provision :shell, :path => "vm_provision/provision-node01.sh", privileged: false
当 运行 privileged: false
(参见 https://www.vagrantup.com/docs/provisioning/shell.html#privileged)时,供应商将 运行 与 vagrant
用户。在你的情况下,这很好,因为你的脚本已经 sudo for 运行ning apt 命令