Dalam versi Raspian saat ini, saya tahu adalah mungkin untuk mengubah kata sandi pengguna yang saat ini masuk dari baris perintah seperti:
sudo passwd
yang kemudian akan meminta pengguna untuk memasukkan kata sandi baru dua kali. Ini akan menghasilkan output seperti:
Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Saya bertanya-tanya apakah ada cara yang mungkin untuk mengubah kata sandi secara terprogram, seperti dari skrip shell.
Saya mencoba membuat skrip konfigurasi untuk digunakan pada Raspberry Pis saya dan saya tidak ingin secara manual harus mengetikkan kata sandi baru untuk mereka.
sudo
. Jika Anda menggunakansudo
maka Anda dapat memaksakan kata sandi baru untuk setiap pengguna tanpa perlu mengetahui kata sandi pengguna saat itu.expect(1)
bisa membantu juga.Jawaban:
Anda sedang mencari
chpasswd
perintah. Anda akan melakukan sesuatu seperti ini:Perhatikan bahwa itu harus dijalankan sebagai root, setidaknya dengan konfigurasi PAM default. Tetapi mungkin dijalankan sebagai root bukan masalah untuk skrip penerapan sistem.
Selain itu, Anda dapat melakukan banyak pengguna sekaligus dengan mengumpankannya beberapa baris input.
sumber
Alternatif lain adalah dengan menggunakan
yes
perintah dalam skrip Anda.Ini akan mengirim
newpassword
kepasswd
perintah untukyouruser
.Harus disebutkan bahwa pengaturan / modifikasi kata sandi pengguna melalui skrip dapat menimbulkan risiko keamanan dan harus dihindari sedapat mungkin.
EDIT:
Jawaban ini membutuhkan akses root. Permintaan maaf karena tidak menyebutkan ini sebelumnya. Ini adalah metode yang saya gunakan saat melakukan tugas administrasi yang memerlukan akses root.
sumber
passwd
membaca daristdin
bukan terminal (keyboard), bagaimana ini bisa bekerja ketikapasswd
diminta pertama untuk kata sandi lama pengguna dan kemudian meminta yang baru?youruser
di akhir). Mungkin berhasil di suatu tempat ...passwd
Perintah dari utilitas bayangan Linux menerima input yang dialihkan (tidak seperti misalnya OpenSSHssh
). Menggunakanyes
bukan ide yang baik: itu memaparkan kata sandi kepada pengintai yang melihat daftar proses pada waktu yang salah. Menggunakanecho
tidak akan memiliki cacat ini karena itu adalah builtin shell.