Come cambiare la password usando usermod?


10

Sono un superadmin di un server e mi piace cambiare la password di un utente esistente. Come posso fare ciò ?

Provai

usermod -p 'new-password' john

ma non ha funzionato?


la risposta migliore è qui: askubuntu.com/a/80447/55435 , nota per controllare anche i commenti
ryenus

Risposte:


17

Il usermod -pflag si aspetta che i dati siano la password già in un formato crittografato.

Utilizzare openssl passwdper generare i dati crittografati o farlo in questo modo:

usermod -p `openssl passwd` (USERNAME)

openssl passwdsi aspetta una password da 0 a 10 caratteri.
Anonimo

6

Il motivo per cui non ha funzionato è perché usermodl'opzione -p prevede che la password sia già crittografata.

Dalla usermodpagina man di:

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).

Non è consigliabile impostare una password in questo modo.

Invece dovresti usare passwd <username>. Questo dovrebbe (come usermod) essere fatto come root (se non stai cambiando la password degli utenti attualmente connessi).

Per cambiare la password dell'utente foo.

sudo passwd foo

Ciò richiederà una nuova password.

Dai un'occhiata alla pagina di manuale passwdper ulteriori informazioni sull'impostazione, ad esempio il tempo di scadenza.

In bocca al lupo!


6

Puoi usare passwd:

sudo passwd USERNAME 

Non è necessario sudose sei un superutente


sudorichiede la password di root :)
Achu,

@Achu: è richiesta la password dell'utente corrente. Ma è un superutente.
RiaD

Cosa superuserrappresenta?
Achu,

3

Il modo di assegnare una password con usermod (che è ciò che l'OP ha effettivamente richiesto) è utilizzare una crypt()password con hash per l' -pargomento.

SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""

Quindi utilizzalo usermod -pnell'argomento della riga di comando:

usermod -p ${HASH} john

2

Un comando a linea singola non interattivo per modificare la password di un utente:

sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john

usermod -prichiede una password crittografata per funzionare. Si noti new-passwordche sarà visibile per gli utenti che possono elencare i processi.


2

Qualcosa che dovrebbe essere aggiunto qui è il seguente. Questo metodo:

sudo usermod -p perl -e "print crypt("new-password","Q4")"john

significa che più password molto simili funzioneranno TUTTE. Ad esempio, sul server Oracle Linux 7.4 e sul desktop Ubuntu 17.10 prendere in considerazione:

sudo usermod -p perl -e "print crypt("borkling","Q4")"orabuntu

Ora se uno lo fa:

su - orabuntu

scoprirai che QUALUNQUE password che inizia con "borkling" funzionerà, ad es

borkling88 borklingjars

anche se "borkline" non funzionerà, perché come indicato precedentemente qualsiasi password che ha "borkling" come prefisso funzionerà anche quando la password è impostata in questo modo.

Un modo per far sì che afaik non abbia questo effetto collaterale indesiderato è il seguente:

(credito per questi va a "Sandeep" qui:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )

Su RedHaty Linuxes: (ometti la "ruota G" se non vuoi che vengano concessi i priv sudo)

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G wheel $ {USERNAME}

Su Debiany Linuxes (ometti il ​​-G sudo se non vuoi i sudo privs):

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {USERNAME}


1

Basta digitare

passwd

In questo modo l'utente normale può cambiare la propria password senza il privilegio di root se non lo si possiede.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.