我正在使用 chef-solo 和 vagrant
Chef 默认对所有内容都使用 root。我只想将 root 用于几件事,但将功能用户用于其他所有事情。
我基本上将一些软件包安装到标准位置(应该以 root 身份完成)。然后,我将一堆东西编译到非标准位置。我希望这整棵树归非 root 用户/组所有。我可以将默认用户/组设置为属性吗?
更广泛地说,为什么 chef 想要充当 root 以及为什么将默认用户更改为非 root 不是更常见的请求?
具体来说,bash
资源可以获取用户,但这不是用户的完整登录。因此,主目录仍然是 root 的主目录(用户不能写入),创建的文件组仍然是 root。所以,
bash "foo" do
user node[:globals][:username]
code <<-EOH
# do stuff
EOH
end
do stuff
不是作为用户的完整登录。
这个问题与https://serverfault.com/questions/402881/execute-as-vagrant-user-not-root-with-chef-solo和那里提到的错误有关,无法修复:http:// /tickets.opscode.com/browse/CHEF-1523我想我需要仔细看看,也许是在执行环境属性:http ://wiki.opscode.com/display/chef/Resources#Resources-Execute