ユーザーの作成時にパペットにパスワードのみを設定させるにはどうすればよいですか?


9

Puppetがパスワードを管理する(つまり、パスワードが変更されたときにリセットする)のではなく、Puppetがユーザーを作成するときに初期パスワードを設定するようにしたい。

パスワードを設定notifyするExecリソースに対してを実行することを考えていましたが、これは、Puppetが管理するプロパティ(グループメンバーシップ、ホームディレクトリなど)が変更されたときにトリガーされます。それは欲しくない。

何か案は?

回答:


9

Puppet自体は、「ユーザーの作成時にパスワードを設定しますが、それ以外はサポートしません」をネイティブでサポートしていません。

1つのオプションは、LDAPなどの外部認証ソースを設定することです。

もう1つはあなた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 2012年

1
RHEL / Centの場合: egrep '^${username}:!!:.*:' /etc/shadow
rfelsburg 2013

1
grep -Eq '^${user}:[*!]!?:' /etc/shadow"最も移植性が高く、ロックされたパスワードでユーザーをリセットしません。
CodeGnome 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.