如何确定Chef"user"资源的密码属性值?

 手机用户2502907603 发布于 2023-01-18 11:39

我正在尝试使用Chef 11创建用户帐户,但我不确定如何计算密码属性的值.我已经阅读了用户资源文档http://docs.opscode.com/resource_user.html,特别是"密码阴影哈希"部分,我仍然不确定究竟要做什么.

这个用户是在Ubuntu系统上创建的,所以我是否使用他们提供的openssl示例并将该命令的输出作为密码属性值传递?

openssl passwd -1 "theplaintextpassword"

但是,每次运行命令时,输出都不同.它还支持各种选项(-crypt,-1,-apr1),我应该使用哪一个?

我一直在查看unix passwd命令帮助,它说它加密了值但没有指出它使用的是哪种方法.阴影和地穴的帮助也没有任何消失.

对于这个例子,数据包是过度的,我有一个我想用于此帐户的值,只是想使用密码属性指定它.

这是用户资源部分:

user 'mytestuser' do
  comment "Test User"
  home "/home/mytestuser"
  shell "/bin/bash"
  supports :manage_home => true

  password "what goes here?"

  action :create
end

更新:

我已经确定您为password属性指定的字符串会直接写入用户的/ etc/shadow条目.我想剩下的问题是确定该文件期望值是什么,以及它与配置用户密码的关系.

1 个回答
  • 关键是看到密码属性值直接写入/ etc/shadow文件.然后是阅读阴影地穴的手册页,最后理解(希望)事物如何融合在一起的问题.如果您对某些背景感兴趣,请参阅下面的血腥细节.

    如果您对密码的MD5哈希没问题,请使用openssl命令生成加密字符串.我正在使用的版本似乎不支持SHA算法.使用openssl passwd --help查看可用的选项.

    openssl passwd -1 -salt "yoursaltphrase"
    Password: <enter the password>
    $1$yoursalt$fIque2U6AZ.YRAqOu5Eyo/
    

    现在在配方的密码属性中使用该字符串:

    user 'mytestuser' do
      comment "Test User"
      home "/home/mytestuser"
      shell "/bin/bash"
      supports :manage_home => true
    
      password '$1$yoursalt$fIque2U6AZ.YRAqOu5Eyo/'
    
      action :create
    end
    

    至于我,我最终手动创建测试用户,然后从/ etc/shadow复制其加密字符串作为配方的密码属性值.

    从/ etc/shadow,mytestuser:后面的第二个字段是加密密码.

       mytestuser:THIS_IS_THE_FIELD_YOU_WANT:16063:0:99999:7:::
    

    男人的影子男人的地穴.

    血腥细节

    从手册页和各种用户论坛拼凑起来,这就是我所学到的.请注意,这里加密一词实际上意味着哈希,因为我不相信密码实际上可以被解密.

    passwd文件的命令加密用户的明文密码,并将其写入/ etc/shadow中.

    / etc/shadow条目包含各种格式之一的用户名和加密密码."crypt"的手册页描述了这些格式,请参阅其NOTES部分.

    加密值的格式为:

    $id$salt$encrypted
    

    可以把它想象成两部分:盐和实际的加密密码.

    盐部分由两部分组成:

      一个可选的id前缀,用于标识所使用的加密算法,并以"$"作为前缀和后缀,例如"$ id $".

      salt值,最多16个字符,以"$"结尾,例如"saltvalue $".该值用于计算加密密码.它是一个随机字符串,每次生成密码时都不同.

    id可以是以下之一,表示使用的加密算法:

    blank = DES  (the default when no $id$ prefix is found)
    1     = MD5
    2a    = Blowfish
    5     = SHA-256
    6     = SHA-512
    

    加密密码长度根据加密算法确定:

    DES      =  8 characters
    MD5      = 22 characters
    SHA-256  = 43 characters
    SHA-512  = 86 characters
    Blowfish = ???
    

    您可以使用openssl passwd命令生成各种密码哈希值.它支持以下选项:

    -crypt             DES-based standard Unix password algorithm (default)
    -1                 MD5-based password algorithm
    -apr1              MD5-based password algorithm, Apache variant
    -salt string       use provided salt
    

    2023-01-18 11:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有