加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 在Vagrant配置后以用户身份执行命令

发布时间:2020-12-15 16:27:49 所属栏目:安全 来源:网络整理
导读:在初始设置后,有一些命令必须作为普通用户运行。我想我可以使用单独的shell脚本和命令su –login -c command vagrant,但它没有从.bashrc获取用户的路径或其他环境设置。 例如。: #!/usr/bin/env bashsu --login -c "rbenv install 2.0.0-p353" vagrantsu
在初始设置后,有一些命令必须作为普通用户运行。我想我可以使用单独的shell脚本和命令su –login -c< command> vagrant,但它没有从.bashrc获取用户的路径或其他环境设置。

例如。:

#!/usr/bin/env bash
su --login -c "rbenv install 2.0.0-p353" vagrant
su --login -c "rbenv global 2.0.0-p353" vagrant
su --login -c "gem update --system" vagrant
su --login -c "yes | gem update" vagrant
su --login -c "gem install rdoc" vagrant
su --login -c "gem install rails pg" vagrant

有没有办法做到这一点?也许它必须用另一个配置工具,如Puppet或Chef?我想到创建另一个shell脚本来源.bashrc,将它复制到框中使用:文件配置文件并执行这样的命令,但它似乎有点像一个黑客。

什么是正确的方法这样做?

你应该能够使用 Vagrant Shell provisioner,例如。
Vagrant.configure("2") do |config|
  $script = <<-SCRIPT
  rbenv install 2.0.0-p353
  rbenv global 2.0.0-p353
  gem update --system
  yes | gem update
  gem install rdoc
  gem install rails pg
  SCRIPT

  config.vm.provision "shell",inline: $script,privileged: false
end

关键是指定特权:false,以便它将使用默认用户,而不是root。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读