Linux ユーザーのパスワードはハッシュとして /etc/shadow ファイルに保存されます。 Puppet は、/etc/shadow ファイルのユーザー タイプ定義で提供されたパスワードを渡します。
openssl コマンドを使用してハッシュ パスワードを生成します:
#openssl passwd -1
#Enter your password here
Password:
Verifying - Password:
$1$HTQUGYUGYUGwsxQxCp3F/nGc4DCYM
前の例では、次のハッシュが生成されます:$1$HTQUGYUGYUGwsxQxCp3F/nGc4DCYM/
示されているように、このハッシュ パスワードをクラスに追加します (引用符を忘れないでください)
user { 'test_user':
ensure => present,
password => '$1$HTQUGYUGYUGwsxQxCp3F/nGc4DCYM/',
}
sha1
あなたが理解したように、操り人形の機能はpasswdエントリを直接意図したものではありません.パスワードではなくハッシュを設定することをお勧めします!とにかく、パスワードを回復できるとは想定されていません-一度生成するか、パペットに毎回生成させることができます-そのハッシュを一度生成するだけで十分です... Debian/Ubuntuでパスワードを生成できますこのように:
pwgen -s -1 | mkpasswd -m sha-512 -s
...CentOS では、mkpasswd の代わりに grub-crypt コマンドを使用できます...
puppetlabs の stdlib パッケージは、同様の pw_hash
を実装しています 受け入れられた回答の関数。
必ずライブラリを構成に追加してください。ライブラリアンを使用している場合は、 Puppetfile
を追加するだけです
mod 'puppetlabs-stdlib'
次に、ユーザーを作成するには、次のようにします:
user { 'user':
ensure => present,
password => pw_hash('password', 'SHA-512', 'mysalt'),
}
Puppet パーサー関数内から ruby の String#crypt メソッドで成功 (要旨) しました。
AFAICS crypt libc 関数を使用しています (参照:info crypt
)、同じ引数 $n$[rounds=<m>$]salt
を取ります ここで、n はハッシュ関数 (SHA-512 の場合は $6)、m はキー強化ラウンドの数 (デフォルトでは 5000) です。