不能让厨师在某个用户下运行bash

Jos*_*kin 6 bash chef-infra

鉴于以下主厨烹饪书摘要:

bash "source a file" do
  user "someUser"
  cwd "/tmp"
  code <<-EOH
source /tmp/test.sh
  EOH
end
Run Code Online (Sandbox Code Playgroud)

其中/tmp/test.sh包含:

echo $USER >> /tmp/out.log
Run Code Online (Sandbox Code Playgroud)

/tmp/out.log然后包含"root"而不是"someUser"

这给我带来了问题,因为我需要所有source和bash命令作为someUser运行.

Kyl*_*ley 17

我必须通过Chef学习一些困难的方法:它实际上可能以用户身份运行,但环境变量未设置.

要亲眼看看,请运行

echo `whoami`
Run Code Online (Sandbox Code Playgroud)

如果您需要设置环境变量,只需设置它们(或源a .bash_profile):

bash "source a file" do
  user "someUser"
  cwd "/tmp"
  environment ({'HOME' => '/home/someUser', 'USER' => 'someUser'})
  code <<-EOH
source /tmp/test.sh
  EOH
end
Run Code Online (Sandbox Code Playgroud)

作为旁注,您是否创建了用户?