创建用户时,如何让人偶只设置密码?


9

我希望Puppet不管理密码(即在更改密码时将其重置),而是在Puppet创建用户时设置初始密码。

我当时正在考虑对设置密码notifyExec资源执行操作,但是当Puppet管理的任何属性(例如,组成员身份,主目录等)被修改时,都会触发该操作。我不要那个。

有任何想法吗?

Answers:


9

Puppet本身不支持“在创建用户时设置密码,但不支持”。

一种选择是设置外部身份验证源,例如LDAP。

另一个是您notifyExec主意,但是会使您Exec变得更聪明。

exec {
  "/usr/sbin/usermod -p '${password}' ${user}":
    onlyif => "/bin/egrep -q '^${user}:[*!]' /etc/shadow",
    require => User[$user];
}

我还没有测试过,但是通过检查是否未在Exec资源中设置密码,您应该得到想要的结果。我认为以这种方式设置notify/ refreshonly东西不是必需的,但可能不会受到伤害。


1
我已经看到一些机器!用于无密码设置,在这种情况下egrep -q '^${user}:[*!]:' /etc/shadow效果更好。
leedm777

1
对于RHEL / Cent: egrep '^${username}:!!:.*:' /etc/shadow
rfelsburg

1
grep -Eq '^${user}:[*!]!?:' /etc/shadow"似乎是最便携式的,不会用锁定的密码重置用户。
CodeGnome
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.