gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:47:05 25 4
gpt4 key购买 nike

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

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

openssl passwd -1 "theplaintextpassword"

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

我一直在查看 unix passwd 命令帮助,它说它加密了值,但没有指出它使用哪种方法。对 shadow 和 crypt 的帮助也没有任何意义。

对于这个例子,数据包是矫枉过正的,我有一个我想用于这个帐户的值,并且只想使用密码属性来指定它。

这是用户资源部分:
user 'mytestuser' do
comment "Test User"
home "/home/mytestuser"
shell "/bin/bash"
supports :manage_home => true

password "what goes here?"

action :create
end

更新:

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

最佳答案

关键是看到密码属性值直接写入/etc/shadow 文件。然后是阅读 shadow 和 crypt 的手册页并最终理解(希望)事物如何组合在一起的问题。如果您对某些背景感兴趣,请参阅下面的血腥详细信息。

如果您对密码的 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:::

参见 man shadow 和 man crypt。

血腥详情

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

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

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

加密值具有以下格式:
$id$salt$encrypted

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

盐部分由两部分组成:
  • 一个可选的 id 前缀,它标识所使用的加密算法,并以“$”作为前缀和后缀,例如“$id$”。
  • 盐值,最多 16 个字符,以“$”结尾,例如“盐值$”。该值用于计算加密密码。它是一个随机字符串,每次生成密码时都不同。

  • 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

    关于passwords - 如何确定 Chef "user"资源的密码属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22386777/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com