Bagaimana cara mengatur kata sandi pengguna menggunakan kata sandi tanpa prompt?

21

Saya menulis skrip untuk menambahkan sejumlah besar pengguna ke sistem. Bagian dari ini melibatkan pengaturan kata sandi default untuk setiap pengguna. Bagaimana saya bisa mengatur kata sandi pengguna tanpa meminta saya untuk kata sandi di muka?

Sayangnya passwd tampaknya tidak mengambil argumen yang menyatakan kata sandi baru untuk ditetapkan. Saya menggunakan Ubuntu 11.10.

Jake Petroules
sumber

Jawaban:

22

Coba usermod:

usermod --password PASSWORD USERNAME

Satu-satunya hal adalah ini membutuhkan string kata sandi pra-enkripsi yang harus Anda hasilkan terlebih dahulu.

Cesium
sumber
1
... yang bisa saya hasilkan menggunakan mkpasswd. Luar biasa terima kasih!
Jake Petroules
16
Anda juga dapat menggunakan openssl untuk menghasilkan kata sandi terenkripsi. Sebagai contoh:usermod --password $(echo my_new_password | openssl passwd -1 -stdin) USERNAME
Eric Smith
1
Tiga tahun terlambat. Saya tidak dapat menjawab @EricSmith, tetapi saya menemukan versi sederhana dari perintah yang berfungsi:usermod --password $(openssl passwd -1 {password}) {username}
BoCoKeith
13

Anda harus melihat chpasswdperintah (jika tersedia dalam rasa linux Anda):

echo 'userid:newpasswd' | chpasswd

Atau, Anda dapat membuat daftar file userid: passwd untuk setiap akun pada baris terpisah.

Itu dia.

Allan
sumber
ini berhasil bagi saya diDockerfile
Vishrant
1

Terinspirasi oleh ide Eric Smith, penggabungan openssl passwddan usermod -pperintah berhasil. Hasilkan nilai kata sandi hash bersama dengan nilai garam.

$ openssl passwd -1  -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.

Kemudian, salin string terenkripsi ke usermod. Pastikan untuk membungkusnya dengan kutipan tunggal.

$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root

Lihat dalam file bayangan.

$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::
Joon Byun
sumber
0

Anda harus menggunakan penuaan kata sandi, dan mengatur pengguna sehingga mereka harus mengubah kata sandi mereka pada login pertama. Lihat artikel ini .

waltinator
sumber
Ini dimaksudkan hanya untuk akun FTP, tetapi saran yang bagus. ;)
Jake Petroules
0
(echo user; echo password) | passwd

bekerja untuk saya baik di host fisik dan wadah, untuk berbagai OS (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)

echo user:password | chpasswd

berfungsi untuk beberapa OS, tetapi beberapa OS seperti debian9,10 akan menampilkan kesalahan can not connect to /var/run/nscd/socketkarena menggunakan /etc/nsswitch.conf untuk menentukan di mana ia menyimpan kata sandi.

osexp2003
sumber