Las peores contraseñas no son contraseñas débiles, sino ninguna contraseña en absoluto. Como administrador del sistema, debe asegurarse de que cada cuenta de usuario tenga una contraseña segura. Este breve tutorial explica cómo encontrar cuentas de usuario con contraseñas vacías en Linux.
Antes de entrar en materia, repasemos rápidamente los archivos shadow y sus usos.
Tabla de Contenidos
¿Qué es un archivo de contraseña oculta?
En los sistemas RHEL, las contraseñas de los usuarios se cifran y almacenan en un archivo llamado /etc/shadow
Los archivos de contraseña oculta contienen detalles de autenticación de usuario y antigüedad de contraseña para cuentas de usuario.
archivo de contraseña oculto root
usuario y sólo puede ser leído por el superusuario. Puede verificar la propiedad y los permisos del archivo shadow con el siguiente comando:
# ls -l /etc/shadow ---------- 1 root root 618 Apr 7 07:52 /etc/shadow
A continuación se muestra una estructura típica de una línea de ejemplo en un archivo shadow.
user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::
Como ya sabrá, los archivos shadow tienen nueve campos Separar con dos puntos.
Echemos un vistazo rápido a cada campo.
- Archivo 1 (nombre de inicio de sesión) – Contiene el nombre de inicio de sesión (usuario1), tal como aparece en
passwd
documento. - Archivo 2 (contraseña cifrada) – Este archivo contiene la contraseña hash (cifrada) del usuario. Si este archivo tiene un signo de exclamación (!) al principio, significa que la cuenta de usuario está bloqueada. Si este campo está en blanco, el usuario no tiene contraseña.
- Archivo 3 (últimos cambios) – Este campo muestra el número de días desde la época de Unix (es decir, tiempo de Unix – 1/1/1970 00:00:00 UTC) cuando se cambió la contraseña por última vez. Si este campo contiene 0, el usuario se verá obligado a cambiar su contraseña la próxima vez que inicie sesión.
- Archivo 4 (mínimo) – Este campo muestra el número mínimo de días (mindays) que deben pasar antes de que el usuario pueda cambiar su contraseña.Puede cambiar este valor de campo usando
chage
comando con-m
opciones - Campo 5 (máx.) – Muestra el número máximo de días (maxdays) que la contraseña de un usuario es válida antes de que caduque. Si este campo es 0, significa que esta función está deshabilitada.El valor de este campo se puede cambiar a
chage
comando con-M
opciones - Archivo 6 (Advertencia) – Indica el número de días (días de advertencia) que se advierte al usuario para que cambie su contraseña antes de que caduque la contraseña.Puede cambiar este valor usando
chage
comando con-W
opción opasswd
comando con-w
opciones - Campo 7 (Caducidad de la contraseña) – Definir el número máximo permitido de días que un usuario puede iniciar sesión con una contraseña caducada.Esto se puede cambiar usando
chage
comando con-I
firmar opasswd
comando con-i
bandera. - Campo 8 (Caducidad de la cuenta) – Define el número de días desde la hora de UNIX que una cuenta de usuario caducará y ya no estará disponible.Puede cambiar el valor de este campo usando
chage
comando con-E
opciones - Campo 9 (reservado) – Este campo está reservado para uso futuro.
Como se mencionó anteriormente, la contraseña cifrada se almacena en el segundo campo de cada entrada en el archivo de contraseña oculta, justo después del nombre de usuario.
Entonces, si el segundo campo en el archivo shadow está vacío, el usuario no tiene una contraseña. Permítame mostrarle un ejemplo de cómo encontrar todas las cuentas de usuario sin contraseña.
Encuentra todas las cuentas de usuario sin contraseñas en Linux
Para detectar todas las cuentas de usuarios locales sin contraseñas, simplemente ejecute el siguiente comando root
usuario:
# awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow
Salida de muestra:
ostechnix has empty password!. Please set a strong password ASAP!!
también puedes usar getent
Combinando comandos grep
y cut
Comando para identificar cuentas de usuarios locales sin contraseña en Linux.
# getent shadow | grep -Po '^[^:]*(?=::)'
o,
# getent shadow | grep '^[^:]*::' | cut -d: -f1
Todos los comandos anteriores solo enumerarán las cuentas de usuario locales con contraseñas vacías. Si desea enumerar las cuentas del sistema y las cuentas de usuario con contraseñas en blanco, ejecute.
# getent shadow | grep -Po '^[^:]*(?=:.?:)'
o,
# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Encuentre una cuenta de usuario sin contraseña específica
El comando anterior enumerará todas las cuentas locales y del sistema sin contraseña.También puede verificar el estado de la contraseña de una cuenta de usuario específica usando passwd
comando con -S
bandera.
# passwd -S ostechnix
Salida de muestra:
ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)
este passwd
El comando indicará el estado de la contraseña de la cuenta de usuario dada. Los posibles valores son:
- li jin – La cuenta de usuario está bloqueada.
- notario público – Las cuentas de usuario no tienen contraseñas.
- posdata – La cuenta de usuario tiene una contraseña disponible.
Cuidado: En los sistemas basados en Debian, el estado de la contraseña se representará como largo, norte, fósforo respectivamente.
Configuración de contraseñas de usuario en Linux
Puede iniciar sesión con un usuario sin contraseña, ¡pero esto no es recomendable! Debe establecer una contraseña segura con al menos 8 caracteres, incluidas letras mayúsculas, letras minúsculas, caracteres especiales y números.
Para establecer una contraseña para una cuenta de usuario en Linux, utilice passwd
el comando es root
A los usuarios les gusta a continuación.
Como usuario raíz:
# passwd ostechnix
Reemplace ostechnix con su propio nombre de usuario.
Ahora verifique el estado de la contraseña de la cuenta de usuario usando passwd
Pedido:
# passwd -S ostechnix
Salida de muestra:
ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)
Bloquear cuentas de usuario en Linux
A veces, solo desea bloquear una cuenta de usuario con una contraseña vacía.Si es así, primero busque a los usuarios anteriores con contraseñas vacías y bloquéelos con passwd
comando con -l
marcar como root
A los usuarios les gusta a continuación.
# passwd -l ostechnix
Salida de muestra:
Locking password for user ostechnix. passwd: Success
Ahora, verifique el estado de la cuenta de usuario:
# passwd -S ostechnix
Salida de muestra:
ostechnix LK 2022-04-07 0 99999 7 -1 (Password locked.)
¿Mirar? El usuario está bloqueado. Ya no puede iniciar sesión en el sistema.
También puedes usar usermod
comando con -L
(L mayúscula) marca para bloquear al usuario.
# usermod -L ostechnix
Desbloquear cuentas de usuario en Linux
Para desbloquear usuarios sin contraseña en Linux, use passwd
comando o usermod
comando con -p
como root
usuario.
# passwd ostechnix
Ingrese la contraseña dos veces para desbloquear la contraseña.
Desbloquear usuario con contraseña vacía usermod
el comando no es posible, debe establecer la contraseña usermod -p
Desbloquee la contraseña para este usuario.
# usermod -postechnix
En conclusión
En este tutorial, explicamos qué es un archivo de contraseña oculta y para qué se usa en Linux. Luego discutimos varios comandos para encontrar todas las cuentas de usuario sin contraseña en Linux. Finalmente, aprendimos cómo establecer contraseñas para los usuarios y cómo bloquear y desbloquear usuarios en Linux.