Pengguna Linux memiliki kata sandi yang disimpan sebagai hash di file /etc/shadow. Puppet meneruskan kata sandi yang diberikan dalam definisi tipe pengguna di file /etc/shadow.
Hasilkan kata sandi hash Anda menggunakan perintah openssl:
#openssl passwd -1
#Enter your password here
Password:
Verifying - Password:
$1$HTQUGYUGYUGwsxQxCp3F/nGc4DCYM
Contoh sebelumnya menghasilkan hash ini:$1$HTQUGYUGYUGwsxQxCp3F/nGc4DCYM/
Tambahkan kata sandi hash ini ke kelas Anda seperti yang ditunjukkan (jangan lupa tanda kutipnya)
user { 'test_user':
ensure => present,
password => '$1$HTQUGYUGYUGwsxQxCp3F/nGc4DCYM/',
}
sha1
fungsi dalam boneka tidak secara langsung ditujukan untuk entri passwd, seperti yang Anda ketahui. Menurut saya, mengatur hash daripada kata sandi adalah praktik yang baik! Anda tidak benar-benar seharusnya dapat memulihkan kata sandi - Anda dapat membuatnya sekali, atau Anda dapat membuat boneka setiap kali - menghasilkan hash itu sekali sudah cukup IMHO ... Anda dapat membuat kata sandi di Debian/Ubuntu seperti ini:
pwgen -s -1 | mkpasswd -m sha-512 -s
...di CentOS Anda dapat menggunakan beberapa perintah grub-crypt alih-alih mkpasswd...
Paket stdlib dari puppetlabs mengimplementasikan pw_hash
yang serupa fungsi dari jawaban yang diterima.
Pastikan untuk menambahkan perpustakaan ke konfigurasi Anda. Jika Anda menggunakan pustakawan, tambahkan saja Puppetfile
Anda
mod 'puppetlabs-stdlib'
Kemudian untuk membuat user, cukup :
user { 'user':
ensure => present,
password => pw_hash('password', 'SHA-512', 'mysalt'),
}
Saya sukses (intinya) dengan metode String#crypt ruby dari dalam fungsi parser Wayang.
AFAICS menggunakan fungsi crypt libc (lihat:info crypt
), dan mengambil argumen yang sama $n$[rounds=<m>$]salt
, dengan n adalah fungsi hashing ($6 untuk SHA-512) dan m adalah jumlah putaran penguatan kunci (5000 secara default).