代码之家  ›  专栏  ›  技术社区  ›  Jay Godse

厨师:如何从加密数据包设置用户密码

  •  0
  • Jay Godse  · 技术社区  · 10 年前

    我使用厨房厨师(1.5.0)和流浪汉(1.8.1)来管理新服务器上的用户。我的用户配方如下:

    include_recipe "users"
    
    group 'sudo'
    
    password_secret = Chef::EncryptedDataBagItem.load_secret(node['enterprise_sp']['secret_file'])
    
    jays_password = Chef::EncryptedDataBagItem.load('user_secrets','jgodse', password_secret)['password']
    shadow_password = `openssl passwd -1 -salt xyz #{jays_password}`.strip
    
    user 'jgodse' do
      action :create
      group 'sudo'
      system true
      shell '/bin/bash'
      home '/home/jgodse'
      manage_home true
      password shadow_password  #added to /etc/shadow when chef runs
    end
    

    未加密的数据包是我在明文中配置密码的地方。然后我用一个 命令

    这是可行的,但这似乎是一种非常肮脏的方法来解决设置密码的问题。我不得不这么做,因为 暗语 指令 使用者 block只接受影子密码,并且只能通过向 开放式ssl 命令

    有没有一种更干净的方法来获取影子密码而不必花费大量时间 开放式ssl 生成密码的命令?

    2 回复  |  直到 9 年前
        1
  •  3
  •   coderanger    10 年前

    您根本不应该存储密码,只需事先对其进行散列,并将散列放在数据包中。同样,使用这样的加密数据包是非常不安全的,请花点时间熟悉Chef加密工具的威胁模型,不是这样的。

        2
  •  3
  •   Roland    10 年前

    至少预先计算密码散列并将其放入数据包。

    看见 https://github.com/chef-cookbooks/users 寻找灵感。

    推荐文章