En este tutorial, explicaré cómo un usuario o superusuario (root) puede cambiar la contraseña en Linux. Passwd es el comando utilizado en Linux (Redhat, Centos, Ubuntu, Debian, Fedora) y sistemas operativos similares a UNIX para cambiar la contraseña.
Cuando ejecutamos passwd
comando la contraseña cifrada del usuario se almacena en el archivo /etc/shadow.
Un usuario normal (no root) solo podrá cambiar su contraseña. Mientras que los usuarios root o sudo pueden cambiar la contraseña de cualquier cuenta.
Por razones de seguridad, siempre es recomendable utilizar una contraseña segura y cambiarla periódicamente.
Cambiar su contraseña
Si la passwd
El comando es ejecutado por un usuario que no es root, luego solicitará la contraseña actual y luego establecerá la nueva contraseña de ese usuario. El superusuario o root puede restablecer la contraseña de cualquier usuario, incluido el root, sin conocer la contraseña actual.
Si el comando passwd
es invocado por un usuario que no es root, primero debe proporcionar su contraseña existente antes de proceder a cambiar la contraseña. La contraseña debe escribirse dos veces y no se repite en la pantalla a medida que la escribe.
$ passwd
Changing password for vagrant.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Tampoco puede proporcionar palabras simples como contraseñas. El comando passwd verificará qué tan larga y compleja es su contraseña. En el siguiente resultado, se prueba una contraseña simple basada en diccionario.
$ passwd
Changing password for vagrant.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
You must choose a longer password
Enter new UNIX password:
Retype new UNIX password:
Bad: new password is too simple
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Cambiar contraseña como superusuario (raíz)
Cualquier usuario del sistema puede cambiar su contraseña únicamente. La passwd
El comando no acepta ningún argumento cuando se ejecuta como un usuario normal.
Pero como root puede cambiar y restablecer la contraseña de cualquier usuario en el sistema.
El uso es el siguiente:
# passwd [options] [user_name]
Las diferentes opciones que se pueden utilizar son:
Options:
-a, --all report password status on all accounts
-d, --delete delete the password for the named account
-e, --expire force expire the password for the named account
-h, --help display this help message and exit
-k, --keep-tokens change password only if expired
-i, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --lock lock the password of the named account
-n, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-q, --quiet quiet mode
-r, --repository REPOSITORY change password in REPOSITORY repository
-R, --root CHROOT_DIR directory to chroot into
-S, --status report password status on the named account
-u, --unlock unlock the password of the named account
-w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
-x, --maxdays MAX_DAYS set maximum number of days before password
change to MAX_DAYS
Cuando root ejecuta passwd
comando restablecerá la contraseña de root de forma predeterminada, y si especifica el nombre de usuario después de passwd
entonces cambiará la contraseña de ese usuario.
# passwd vagrant
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
#
El usuario raíz puede incluso proporcionar contraseñas simples. Aunque se muestra una advertencia, la contraseña aún se cambia correctamente. La contraseña del usuario del sistema se almacena de forma cifrada en el archivo /etc/shadow.
Mostrar información sobre el estado de la contraseña
Para mostrar la información del estado de la contraseña de un usuario deseado, use -S
opción en el comando passwd.
# passwd -S vagrant
vagrant P 07/02/2019 0 99999 7 -1
#
El primer campo muestra el nombre de usuario, el segundo campo muestra el estado de la contraseña (PS =Contraseña establecida, LK =Contraseña bloqueada, NP =Sin contraseña), el tercer campo muestra cuándo se cambió la contraseña por última vez y el último y el cuarto campo muestran la edad mínima, la edad máxima y la advertencia. período y período de inactividad de la contraseña.
Para listar el estado de todas las contraseñas de los usuarios en el sistema, usaremos -Sa
parámetro:
# passwd -Sa
root P 05/14/2019 0 99999 7 -1
daemon L 05/14/2019 0 99999 7 -1
bin L 05/14/2019 0 99999 7 -1
sys L 05/14/2019 0 99999 7 -1
sync L 05/14/2019 0 99999 7 -1
games L 05/14/2019 0 99999 7 -1
man L 05/14/2019 0 99999 7 -1
lp L 05/14/2019 0 99999 7 -1
mail L 05/14/2019 0 99999 7 -1
news L 05/14/2019 0 99999 7 -1
uucp L 05/14/2019 0 99999 7 -1
proxy L 05/14/2019 0 99999 7 -1
www-data L 05/14/2019 0 99999 7 -1
backup L 05/14/2019 0 99999 7 -1
Eliminar la contraseña de un usuario
Para eliminar la contraseña de un usuario deseado, usaremos -d
opción de comando:
# passwd -d test
passwd: password expiry information changed.
# passwd -S test
test NP 07/02/2019 0 99999 7 -1
Nota:Opción -d
hará que la contraseña del usuario quede vacía y deshabilitará la cuenta del usuario.
Establecer caducidad de contraseña
Para hacer que la contraseña del usuario caduque y obligar a ese usuario a cambiar la contraseña en un próximo inicio de sesión, use -e
opción en passwd
comando.
# passwd -e test
passwd: password expiry information changed.
# passwd -S test
test NP 01/01/1970 0 99999 7 -1
Bloquear y desbloquear la contraseña de un usuario del sistema
Para bloquear la contraseña de un usuario, use -l
opción en passwd
dominio. Agregará !
al comienzo de la contraseña del usuario. El usuario no puede cambiar su contraseña cuando su contraseña está bloqueada.
# passwd -l test
passwd: password expiry information changed.
# passwd -S test
test L 07/03/2019 0 99999 7 -1
Para desbloquear la contraseña del usuario, use -u
opción:
# passwd -u test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 7 -1
Configuración de días inactivos usando la opción -i
Esto se activará cuando la contraseña de un usuario seleccionado caduque y el usuario no haya cambiado su contraseña en 'n' número de días (es decir, 10 días). Después de eso, el usuario no podrá iniciar sesión.
# passwd -i 10 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 7 10
Establecer días de advertencia antes de que caduque la contraseña
Opción -w
se utiliza establecer días de advertencia antes de que se le recuerde a un usuario que cambie la contraseña. Significa que un usuario recibirá una advertencia n días antes de que caduque su contraseña.
# passwd -w 5 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 5 10
Establecer días mínimos para cambiar la contraseña
A continuación, el usuario de prueba de ejemplo tiene que cambiar la contraseña en 30 días. Un valor de cero muestra que el usuario puede cambiar su contraseña en cualquier momento.
# passwd -n 30 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 30 99999 5 10
Conclusión
En este tutorial, aprendimos cómo cambiar la contraseña de usuario en Linux. Para obtener más información, consulte las páginas man del comando passwd. Gracias por leer este artículo y avíseme si tiene alguna pregunta.
Leer también:
- Cómo encontrar/cambiar la contraseña raíz predeterminada de Ubuntu
- Cómo agregar usuarios a Sudoers en Linux