Puoi usare chpasswd
per farlo, in questo modo:
echo "username:newpassword" | chpasswd
Puoi reindirizzare in chpasswd
da programmi diversi da echo
, se conveniente, ma questo farà il trucco.
Modifica:per generare la password all'interno dello script della shell e quindi impostarla, puoi fare qualcosa del genere:
# 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
Per ulteriori informazioni su chpasswd
, vedere http://linux.die.net/man/8/chpasswd
(Il comando per generare la password era da http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html)
Puoi utilizzare OpenSSL per generare la password casuale (16 caratteri, in questo caso):
# 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')
Quindi fornisci la password con hash a useradd
o usermod
# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>
MODIFICA:
Da quando è stato pubblicato questo articolo nel 2012, le versioni più recenti di OpenSSL hanno aggiunto funzionalità al openssl passwd
comando. Invece di utilizzare il -1
opzione per ottenere un hash basato su MD5, le versioni moderne supportano anche -5
per hash basati su SHA256 e -6
per hash basati su SHA512.
Credito dovuto:la generazione della password è adattata da un metodo simile che utilizza /dev/urandom
invece di openssl
.
useradd dovrebbe funzionare (l'ho fatto su Ubuntu). Forse controlla che ciascuno dei tuoi argomenti sia corretto (i gruppi esistono, il percorso è giusto per bash). Puoi eseguire il comando solo con una password e un utente, quindi utilizzare userdel da rimuovere e poi riprovare con più parametri, per vedere quale causa il problema (approccio forza bruta).
C'è anche newusers (vedi la pagina man), almeno sotto Ubuntu, dove gli dai un file con file passwd come informazioni, incluse le password in testo semplice e creerà quegli utenti. Bel modo di fare molti utenti contemporaneamente.