Passwords 如何确定Chef“的密码属性值?”;“用户”;资源?

Passwords 如何确定Chef“的密码属性值?”;“用户”;资源?,passwords,chef-infra,Passwords,Chef Infra,我正在尝试使用Chef 11创建一个用户帐户,但不确定如何计算password属性的值。我已经阅读了用户资源文档,特别是“密码阴影散列”一节,但仍然不确定到底要做什么 这个用户是在Ubuntu系统上创建的,所以我是否使用他们提供的openssl示例并将该命令的输出作为密码属性值传递 openssl passwd -1 "theplaintextpassword" 但是,每次运行该命令时,输出都不同。它还支持各种选项(-crypt,-1,-apr1),那么我应该使用哪一个呢 我一直在看unix

我正在尝试使用Chef 11创建一个用户帐户,但不确定如何计算password属性的值。我已经阅读了用户资源文档,特别是“密码阴影散列”一节,但仍然不确定到底要做什么

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

openssl passwd -1 "theplaintextpassword"
但是,每次运行该命令时,输出都不同。它还支持各种选项(-crypt,-1,-apr1),那么我应该使用哪一个呢

我一直在看unix passwd命令帮助,它说它对值进行加密,但没有指出它使用的方法。对暗影和地穴的帮助也没有任何意义

在本例中,数据包是多余的,我有一个值要用于此帐户,只是想使用password属性指定它

以下是用户资源部分:

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条目。我想剩下的问题是确定该文件期望值是什么,以及它与配置用户密码的关系。

密钥看到密码属性值直接写入/etc/shadow文件。然后是阅读shadow和crypt手册页,最终理解(希望如此)事物是如何结合在一起的。如果你对一些背景感兴趣,请参阅下面的血淋淋的细节

   mytestuser:THIS_IS_THE_FIELD_YOU_WANT:16063:0:99999:7:::
如果对密码的MD5散列没有问题,请使用openssl命令生成加密字符串。我使用的版本似乎不支持SHA算法。使用openssl passwd--帮助查看哪些选项对您可用

openssl passwd -1 -salt "yoursaltphrase"
Password: <enter the password>
$1$yoursalt$fIque2U6AZ.YRAqOu5Eyo/
至于我,我最终手动创建了测试用户,然后从/etc/shadow复制了它的加密字符串作为配方的密码属性值

在/etc/shadow中,mytestuser:之后的第二个字段是加密密码

   mytestuser:THIS_IS_THE_FIELD_YOU_WANT:16063:0:99999:7:::
看人影和人穴

血淋淋的细节

将手册页和各种用户论坛中的内容拼凑在一起,下面是我学到的。请注意,这里加密的术语实际上意味着散列,因为我不相信密码实际上可以被解密

passwd命令加密用户的纯文本密码并将其写入/etc/shadow

/etc/shadow条目包含各种格式之一的用户名和加密密码。“crypt”的手册页描述了这些格式,请参见其注释部分

加密值的格式为:

$id$salt$encrypted
可以将其视为包含两部分:salt和实际加密的密码

   mytestuser:THIS_IS_THE_FIELD_YOU_WANT:16063:0:99999:7:::
盐部分由两部分组成:

  • 可选的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 = ???
    
    您可以使用opensslpasswd命令生成各种密码散列。 它支持以下选项:

    -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