已经试过在ubuntu上安装 puppet libshadow-ruby1.8
class users { package { "libshadow-ruby1.8": ensure => latest, require => Exec['apt-get update'] } user { "ubuntu": ensure => present, uid => '1001', gid => 'admin', shell => '/bin/bash', password => sha1('ubuntu'), managehome => true, require => Package['libshadow-ruby1.8'] } } include users
这么写用户名是创建了, 但是密码还是没有
ps: 其实我是在用vagrant, vagrant是默认用户名想换成ubuntu
Apabila anda menyebut "masih tiada kata laluan", adakah anda bermaksud pengesahan gagal apabila anda memasukkan kata laluan "ubuntu"? Atau adakah tiada rekod ubuntu dalam fail bayangan sama sekali?
Saya rasa ini yang pertama (pengesahan gagal). Kata laluan dalam fail bayangan nampaknya tidak dijana oleh sha1(.
Penyelesaian yang saya fikirkan ialah:
Gunakan kata laluan yang disalin daripada fail bayangan dalam kelas bonekaMula-mula buat pengguna dalam terminal menggunakan useradd, passswd dan tetapkan kata laluan kepada ubuntu, seperti yang ditunjukkan dalam angka:
Tulis skrip bash dan gunakan arahan expect dan passwd untuk menetapkan kata laluan untuk pengguna baharuPergi ke fail bayangan dan salin kata laluan yang disulitkan, dan gunakan kod boneka ini untuk mencipta pengguna:
Memandangkan arahan passwd menerima kata laluan terus daripada stdin, ia tidak boleh melepasi baris arahan parameter seperti passwd ubuntu ubuntu Untuk menetapkan kata laluan, penyelesaiannya ialah dengan menulis shell bash sendiri (dengan mengandaikan ia dipanggil set_passwd.sh Skrip shell ini menerima kata laluan teks biasa daripada baris arahan, dan kemudian menggunakan expect untuk menghantarnya kepada). arahan passwd
Dengan cara ini, skrip boneka anda adalah seperti berikut: