【问题标题】:how to set password for user at run time in chef如何在厨师运行时为用户设置密码
【发布时间】:2014-05-28 21:10:38
【问题描述】:

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

而不是下面的方法:

openssl passwd -1 "theplaintextpassword"
$1$JJsvHslV$szsCjVEroftprNn4JHtDi.

然后在用户资源中设置它

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

还有其他选择吗..??

【问题讨论】:

  • no.. 我的问题没有解决。仍在寻找解决方案
  • @mohan 你确定我的回答不能解决你的问题吗?它会像您的问题一样生成哈希。

标签: knife chef-infra


【解决方案1】:

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

require 'digest/sha2'

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

运行后,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

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

【讨论】:

  • 这行不通。用户资源的问题是,它需要一个加密数据..在密码部分..
  • 这就是代码顶部的作用。它创建密码的哈希,以便您可以在用户资源中使用哈希字符串。
【解决方案2】:

我还没有完全找到您正在寻找的东西,但是 openssl 食谱非常接近。通过一些修补,您应该能够更改接受字符串输入的方法,然后利用 unix-crypt 库对该字符串进行加密,或者甚至只是按照说明书中使用的模式来制作您自己的资源。

https://github.com/opscode-cookbooks/openssl

https://github.com/mogest/unix-crypt

【讨论】:

    猜你喜欢
    • 2018-07-05
    • 2015-02-15
    • 2014-06-12
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多