Geo*_*ler 11 shell provisioning root packer
我有一个shell provisioner
包装机与用户连接到一个盒子vagrant
{
"environment_vars": [
"HOME_DIR=/home/vagrant"
],
"expect_disconnect": true,
"scripts": [
"scripts/foo.sh"
],
"type": "shell"
}
Run Code Online (Sandbox Code Playgroud)
脚本的内容是:
whoami
sudo su
whoami
Run Code Online (Sandbox Code Playgroud)
并且输出奇怪地仍然存在:
whoami
sudo su
whoami
Run Code Online (Sandbox Code Playgroud)
为什么我不能切换到root用户?如何以 root 身份执行语句?请注意,我不想引用所有语句sudo "statement |foo"
,而是像演示的那样全局切换用户sudo su
Ric*_*sen 10
您应该覆盖execute_command。例子:
"provisioners": [
{
"execute_command": "echo 'vagrant' | {{.Vars}} sudo -S -E sh -eux '{{.Path}}'",
"scripts": [
"scripts/foo.sh"
],
"type": "shell"
}
],
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13319 次 |
最近记录: |