Anda dapat menggunakan chpasswd
untuk melakukannya, seperti ini:
echo "username:newpassword" | chpasswd
Anda dapat menyalurkan ke chpasswd
dari program selain echo
, jika nyaman, tetapi ini akan berhasil.
Sunting:Untuk menghasilkan kata sandi di dalam skrip shell dan kemudian menyetelnya, Anda dapat melakukan sesuatu seperti ini:
# Change username to the correct user:
USR=username
# This will generate a random, 8-character password:
PASS=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c8`
# This will actually set the password:
echo "$USR:$PASS" | chpasswd
Untuk informasi selengkapnya tentang chpasswd
, lihat http://linux.die.net/man/8/chpasswd
(Perintah untuk membuat kata sandi berasal dari http://nixcraft.com/Shell-scripting/13454-command-generate-random-password-string.html)
Anda dapat menggunakan OpenSSL untuk membuat kata sandi acak (dalam hal ini 16 karakter):
# 1000 bytes should be enough to give us 16 alphanumeric ones
p=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')
Kemudian masukkan kata sandi hash ke useradd
atau usermod
# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>
EDIT:
Sejak memposting ini pada tahun 2012, versi OpenSSL yang lebih baru telah menambahkan fungsionalitas ke openssl passwd
memerintah. Alih-alih menggunakan -1
opsi untuk mendapatkan hash berbasis MD5, versi modern juga mendukung -5
untuk hash berbasis SHA256 dan -6
untuk hash berbasis SHA512.
Kredit yang jatuh tempo:Pembuatan kata sandi diadaptasi dari metode serupa yang menggunakan /dev/urandom
bukannya openssl
.
tambahkan pengguna harus bekerja (saya sudah melakukannya di Ubuntu). Mungkin periksa apakah setiap argumen Anda benar (grup Anda ada, jalurnya benar untuk bash). Anda dapat menjalankan perintah hanya dengan kata sandi dan pengguna, lalu menggunakan userdel untuk menghapus dan mencoba lagi dengan lebih banyak parameter, untuk melihat apa yang menyebabkan masalah (pendekatan brute force).
Ada juga pengguna baru (lihat halaman manual), setidaknya di bawah Ubuntu, di mana Anda memberikannya file dengan file passwd seperti info, termasuk kata sandi teks biasa dan itu akan membuat pengguna tersebut. Cara yang bagus untuk melakukan banyak pengguna sekaligus.