如何在厨师的运行时为用户设置密码

Moh*_*lli 6 chef-infra knife

如何在运行时为chef中的用户创建设置密码.而不是使用openssl的加密机制,并在厨师的用户资源中设置它.

而不是以下方法:

openssl passwd -1 "theplaintextpassword"
$1$JJsvHslV$szsCjVEroftprNn4JHtDi.
Run Code Online (Sandbox Code Playgroud)

然后在用户资源中设置它

user "random" do  
  supports :manage_home => true  
  comment "Random User"  
  uid 1234  
  gid "users"  
  home "/home/random"  
  shell "/bin/bash"  
  password "$1$JJsvHslV$szsCjVEroftprNn4JHtDi."  
end
Run Code Online (Sandbox Code Playgroud)

还有其他选择.. ??

Ell*_*val 3

您可以尝试在食谱中使用 Ruby 生成密码密文:

require 'digest/sha2'

password = "pass@123"
salt = rand(36**8).to_s(36)
shadow_hash = password.crypt("$6$" + salt)
Run Code Online (Sandbox Code Playgroud)

运行后,shadow_hash包含以下字符串: $6$vf1ehwzs$VAxaPBAeXjvEMboee.xbJgMOXlCrJ.eJDPkqP.16fGyAqjq1IDkh0OpEXFRo1W04G7tl02YMQz7dKmGKLVaRd/

然后您可以在资源中使用它user

user "random" do  
  supports :manage_home => true  
  comment "Random User"  
  uid 1234  
  gid "users"  
  home "/home/random"  
  shell "/bin/bash"  
  password shadow_hash
end
Run Code Online (Sandbox Code Playgroud)

来自http://judepereira.com/blog/use-ruby-to-generate-your-shadow-password/