我需要使用p创建一个具有密码的测试用户。
我读过,木偶无法以通用的跨平台方式管理用户密码,这很遗憾。我这样做是针对Red Hat Enterprise Linux Server 6.3版。
我做如下:
user { 'test_user': ensure => present, password => sha1('hello'), }
puppet更新了用户密码,但是Linux表示我尝试登录时login / pwd不正确。
如果我在Linux中使用手动设置了密码sudo passwd test_user,然后查看/etc/shadow并在puppet中对该值进行了硬编码,那么它将起作用(我可以登录)。就像是:
sudo passwd test_user
/etc/shadow
user { 'test_user': ensure => present, password => '$1$zi13KdCr$zJvdWm5h552P8b34AjxO11', }
我也尝试过$1$在前面添加sha1('hello'),但是它也不起作用(请注意,$1$代表sha1)。
$1$
sha1('hello')
如何修改第一个示例以使其起作用(使用人偶文件中的纯文本密码)?
PS:我知道我应该使用LDAP或sshkeys或其他方式,而不是硬编码人偶文件中的用户密码。但是,我这样做仅是为了运行木偶游民测试,因此可以对用户密码进行硬编码。
我在Puppet解析器函数中使用ruby的String#crypt方法获得了成功(要点)。
在AFAICS中,它使用的是crypt libc函数(请参见:)info crypt,并采用相同的参数$n$[rounds=<m>$]salt,其中n是哈希函数(对于SHA-512,为$ 6),而m是密钥加强回合的次数(默认为5000)。
info crypt
$n$[rounds=<m>$]salt