¿Cómo cambiar la contraseña usando usermod?

10

Soy superadmin de un servidor y me gusta cambiar la contraseña de un usuario existente. Cómo puedo hacer eso ?

Lo intenté

usermod -p 'new-password' john

pero no funcionó?

Sr. codificador
fuente
la mejor respuesta está aquí: askubuntu.com/a/80447/55435 , tenga en cuenta también los comentarios
ryenus

Respuestas:

17

La usermod -pbandera espera que los datos sean la contraseña ya en un formato cifrado.

Use openssl passwdpara generar los datos encriptados, o hágalo así:

usermod -p `openssl passwd` (USERNAME)
Rorik
fuente
openssl passwdespera una contraseña de 0 a 10 caracteres.
Onnónimo
6

La razón por la que no funcionó es porque usermodla opción -p espera que la contraseña ya esté encriptada.

Desde usermodla página de manual de:

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

No se recomienda establecer una contraseña de esta manera.

En su lugar, debe usar passwd <username>. Esto (como usermod) debe hacerse como root (si no está cambiando la contraseña de los usuarios actualmente conectados).

Para cambiar la contraseña para el usuario foo.

sudo passwd foo

Esto solicitará una nueva contraseña.

Eche un vistazo a la página de manual para passwdobtener más información sobre la configuración, por ejemplo, el tiempo de caducidad.

¡Buena suerte!

Zoke
fuente
6

Puedes usar passwd:

sudo passwd USERNAME 

No necesitas sudosi eres tú mismo superusuario

RiaD
fuente
sudorequerir contraseña de root :)
Achu
@Achu: se requiere contraseña de usuario actual. Pero él es superusuario.
RiaD
¿Qué superuserrepresenta?
Achu
3

La forma de asignar una contraseña con usermod (que es lo que realmente solicitó el OP) es usar una crypt()contraseña hash para el -pargumento.

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

Luego use eso en su usermod -pargumento de línea de comando:

usermod -p ${HASH} john
Trucha Waldo
fuente
2

Un comando de línea única no interactivo para cambiar la contraseña de un usuario:

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

usermod -prequiere contraseña encriptada para funcionar. Tenga en cuenta new-passwordque será visible para los usuarios que pueden enumerar los procesos.

Benoy G
fuente
2

Algo que debería agregarse aquí es lo siguiente. Este método:

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

significa que TODAS las contraseñas muy similares funcionarán TODAS. Por ejemplo, en el servidor Oracle Linux 7.4 y el escritorio Ubuntu 17.10 considere:

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

Ahora si uno lo hace:

su - orabuntu

encontrará que CUALQUIER contraseña que comience con "borkling" funcionará, p. ej.

borkling88 borklingjars

aunque "borkline" no funcionará, ya que, como se indicó anteriormente, cualquier contraseña que tenga "borkling" como prefijo también funcionará cuando la contraseña se establezca de esta manera.

Una forma de lograr que afaik no tenga este efecto secundario no deseado es el siguiente:

(el crédito para estos va a "Sandeep" aquí:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )

En Linux RedHaty: (omita la "rueda -G" si no desea que se otorguen los sudo privs)

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

En Debiany Linux (omita el sudo -G si no quiere los sudo privs):

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

Gstanden
fuente
1

Sólo tipo

passwd

De esta manera, el usuario normal puede cambiar su propia contraseña sin privilegios de root si no tiene.

Achu
fuente