Introducción
El comando passwd de Linux cambia la contraseña de un usuario. Un usuario solo puede cambiar su propia contraseña, pero el root/superusuario puede cambiar la contraseña de cualquier usuario.
Miremos la página del manual de Linux para comprender el uso de este comando. Esto se hace escribiendo el siguiente comando:
$ man passwd
Contraseñas en Linux
El método tradicional de almacenar contraseñas en un sistema basado en UNIX implicaba almacenar la información en /etc/passwd archivo.
Sin embargo, muchos programas accedieron a este archivo y, por lo tanto, representaba un riesgo para la seguridad.
Hoy en día, /etc/passwd
El archivo solo contiene información esencial del usuario necesaria para el inicio de sesión y la autenticación.
La versión encriptada real de la contraseña se almacena en un archivo separado:/etc/shadow
. Solo el usuario root puede acceder a este archivo.
archivo se ve de la siguiente manera:/etc/passwd
contenido del archivo passwd
Cada línea del archivo contiene información general del usuario sobre un determinado programa o usuario. Los campos están separados por
:
.
Estos campos son los siguientes:- Nombre de usuario (hasta 8 caracteres)
- x para indicar la contraseña, que se almacena en el
/etc/shadow
archivo en formato cifrado. - ID de usuario numérico.
- ID de grupo numérico.
- Nombre de usuario completo.
- Ruta del directorio de inicio.
- Ruta del shell preferido. (
"/bin/bash"
)
/etc/shadow
El archivo tiene el siguiente aspecto (requiere acceso de root):contenido del archivo shadow
Este archivo contiene información de cuenta y contraseña. Los campos están separados por
:
.Los campos correspondientes a la información de la cuenta de usuario son los siguientes:
- Nombre de usuario (hasta 8 caracteres)
- El segundo campo contiene la contraseña cifrada y se divide en subcampos (separados por
$
carácter). El primer subcampo indica el algoritmo de cifrado utilizado:$1$ - MD5 $2a$ - Blowfish $2y$ - Blowfish(v2) $5$ - SHA-256 $6$ - SHA-512
El segundo subcampo contiene el valor salt utilizado durante el proceso de encriptación. El tercer subcampo contiene la contraseña cifrada.
- Número de días desde que se cambió la contraseña.
- Número de días antes de que se pueda cambiar la contraseña (0 indica que se puede cambiar en cualquier momento).
- Número de días después de los cuales se debe cambiar la contraseña.
- Número de días previos a la caducidad de la contraseña, que se debe advertir al usuario.
- Número de días después de los cuales la cuenta se deshabilita después de que caduque una contraseña.
- Días desde el 1 de enero de 1970 que la cuenta ha estado inactiva o deshabilitada.
- Campo de reserva para información adicional.
Sintaxis del comando de contraseña de Linux
$ passwd [options]... [LOGIN]...
1. Cambiar la contraseña del usuario actual
Escribiendo el Comando Contraseña
Al escribir passwd, se solicita al usuario que primero ingrese la contraseña actual. El usuario solo tiene una oportunidad de escribir la contraseña correcta. Si la contraseña ingresada es incorrecta o no se puede cambiar en ese momento, el terminal muestra un error y sale.
Error de autenticación de contraseña
Una vez que se ingresa la contraseña, se cifra y se compara con la contraseña cifrada almacenada. Luego se le pide al usuario que ingrese la nueva contraseña dos veces. Ambas contraseñas deben ser lo suficientemente complejas y coincidir entre sí para que se acepten como contraseñas válidas.
Ingresar nueva contraseña
Se muestra un error si la nueva contraseña se parece mucho a la anterior.
Una vez que se cumplen todos los criterios, la contraseña del usuario actual se cambia correctamente.
Nuevo conjunto de contraseña
2. Cambiar la contraseña de otro usuario
El siguiente comando se utiliza para cambiar la contraseña de otro usuario:
$ sudo passwd adam
Dado que se requiere acceso a la raíz para cambiar las contraseñas de otros usuarios, el terminal solicita al usuario que ingrese la contraseña. El proceso para cambiar la contraseña de otros usuarios es el mismo que el del usuario actual.
Opciones del comando passwd de Linux
- -d o –eliminar opción elimina la contraseña del usuario. Establece la cuenta del usuario sin contraseña.
- -e o –caducar La opción caduca inmediatamente la contraseña del usuario. Esto puede obligarlos a cambiar su contraseña.
- -h o –ayuda muestra el mensaje de ayuda y sale.
- -l o –bloquear La opción bloquea la contraseña de la cuenta nombrada agregando un '!' al comienzo de la contraseña. Esto evita que el hash cifrado se compare correctamente con el hash almacenado. Los usuarios con contraseñas bloqueadas no pueden cambiar sus contraseñas.
- -i [INACTIVE_DAYS] o –inactivo [INACTIVE_DAYS] La opción desactiva una cuenta después de que la contraseña haya caducado durante varios días.
- -n [MIN_DAYS] o –mindays [MIN_DAYS] La opción establece el número mínimo de días entre cambios de contraseña. Un valor de
0
sugiere que se puede cambiar una contraseña en cualquier momento. - -r [REPOSITORIO] o –repositorio [REPOSITORIO] opción establece la contraseña para un repositorio en particular.
- -S o –estado muestra información sobre el estado de la cuenta.
- -a o –todos La opción muestra el estado de todos los usuarios. Solo se puede usar con -S .
- -u o –desbloquear Las opciones desbloquean una contraseña bloqueada y la establecen en su valor anterior.
- -w [WARN_DAYS] o –días de advertencia [WARN_DAYS] Esta opción establece el número de días que se muestra una advertencia antes de que sea necesario cambiar la contraseña.
- -x o –maxdays [MAX_DAYS] La opción establece el número máximo de días que una contraseña permanece válida. Después de eso, se debe cambiar la contraseña.
Opción de contraseña inactiva
Ejemplo de opción Passwd Mindays
ejemplo de opción de estado de contraseña
La salida se divide en diferentes campos como se muestra arriba. El primer campo muestra el nombre del usuario actual.
El segundo campo muestra si el usuario tiene una contraseña utilizable (P ), contraseña bloqueada (L ) o sin contraseña (NP ).
El tercer campo muestra la última fecha del cambio de contraseña. Los siguientes campos muestran la edad mínima, la edad máxima, el período de advertencia y el período de inactividad de la contraseña, respectivamente.
ejemplo de opciones de passwd warndays
ejemplo de opción passwd maxdays
Conclusión
El comando passwd de Linux es un comando básico pero importante. Se puede usar para manejar la información esencial del usuario y la autenticación al iniciar sesión en el sistema y realizar varias tareas en la terminal, como instalar paquetes y acceder a ciertos directorios.