¿Cómo puedo bloquear la cuenta de un usuario en sistemas operativos Linux? ¿Cómo puedo desbloquearla?
Para cambiar la contraseña de una cuenta de usuario o de un grupo, puedes utilizar el comando passwd . Un usuario normal solamente puede cambiar la contraseña de su propia cuenta, mientras que el superusuario root puede cambiar la contraseña de cualquier cuenta. Puedes utilizar el comando passwd para bloquear o desbloquear cuentas en cualquier sistema operativo Linux.
Contenidos
Bloqueando una cuenta en Linux
A modo de curiosidad, el bloqueo a nivel interno se realiza mediante la conversión de la contraseña cifrada en una cadena no válida agregando un prefijo, que suele ser una admiración «!».
Para el bloqueo de cuentas, se utiliza el comando passwd con la opción -l, que sólo está disponible para el usuario root. La sintaxis es la siguiente:
passwd -l {usuario}
La opción -l desactiva una cuenta cambiando la contraseña a un valor que no coincide con ningún valor cifrado posible. En este ejemplo, bloqueamos la cuenta del usuario neoguias. En primer lugar, iniciamos sesión como usuario root, y luego, escribimos el siguiente comando:
# passwd -l neoguias
Un ejemplo de salida por pantalla es el siguiente:
Locking password for user neoguias. passwd: Success
Desbloqueando una cuenta en linux
Se utiliza el comando passwd con la opción -u, que solamente está disponible para el usuario root:
passwd -u {usuario}
La opción -u vuelve a habilitar la cuenta, devolviendo la contraseña a su valor original, es decir, al valor que tenía antes de utilizar la opción -l. Vamos a ver un ejemplo para desbloquear cuenta del usuario neoguias. Iniciamos sesión como usuario root y escribimos el siguiente comando:
# passwd -u neoguias
Ejemplos de salida del comando:
Unlocking password for user neoguias. passwd: Success
Vamos a ver ahora algunas consideraciones adicionales.
Como usuario root, acceder a una cuenta bloqueada
Aunque una cuenta esté bloqueada, aún podéis querer acceder a ella mediante el comando:
su – {usuario}
Cuando bloqueamos una cuenta, el acceso mediante SSH estará deshabilitado, pero aún podemos acceder a ella si somos usuario root. Por ejemplo, si la cuenta del usuario neoguias está bloqueada, podemos acceder a ella mediante el comando:
# su - neoguias
Ejemplo completo en el que bloqueamos el acceso a una cuenta de usuario sin deshabilitar la cuenta en sí:
Aún así, será posible acceder a la cuenta mediante el uso de una clave pública.
¿Qué ocurre con la autenticación SSH con clave pública?
Cuando las cuenta de usuario son bloqueadas con la opción -l, aún es posible iniciar sesión por otros métodos, como por ejemplo, mediante la autenticación ssh con clave pública. Para bloquear una cuenta por completo, podemos utilizar el siguiente comando:
chage -E 0 {usuario}
De este modo, ponemos una fecha de expiración de acceso nula. Para bloquear la cuenta del usuario neoguias por completo, escribimos el siguiente comando:
# chage -E 0 neoguias
Cómo eliminar la fecha de expiración de una cuenta
Para ello, volvemos utilizar el mismo comando que antes, pero en lugar del valor cero, escribimos el valor -1:
# Chage -E -1 neoguias # Chage -l neoguias
Si así lo queremos, también podemos asignar una nueva contraseña a la cuenta.
Ahora, el usuario ya podrá entra mediante SSH utilizando su contraseña habitual, además de poder entrar utilizando su clave pública.