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ó?
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ó?
Respuestas:
La razón por la que no funcionó es porque usermod
la opción -p espera que la contraseña ya esté encriptada.
Desde usermod
la 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 passwd
obtener más información sobre la configuración, por ejemplo, el tiempo de caducidad.
¡Buena suerte!
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 -p
argumento.
SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""
Luego use eso en su usermod -p
argumento de línea de comando:
usermod -p ${HASH} john
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 -p
requiere contraseña encriptada para funcionar. Tenga en cuenta new-password
que será visible para los usuarios que pueden enumerar los procesos.
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}