Como deshabilitar temporalmente una cuenta de usuario en GNU/Linux
|En algunas ocasiones en entornos Linux, queremos deshabilitar temporalmente una cuenta de usuario, ya sea por que el propietario esta de vacaciones, por que la cuenta fue suspendida o por cualquier motivo se requiere suspender la cuenta de usuario mas no borrarla (como muchos usuarios habran pensado como una sencilla solucion).
En linux, podemos deshabilitar facilmente una cuenta de usuario, haciendo uso del comando usermod, con este comando lo que haremos sera asignar una fecha de caducidad a la cuenta, de esta forma, si asignamos una fecha vencida, deshabilitaremos la cuenta hasta que solamente el administrador del sistema la pueda reestablecer.
Para deshabilitar la cuenta deberemos hacer lo siguiente en una consola:
usermod -L -e 1970-01-01 usuario
Donde usuario es el nombre de la cuenta a suspender y 1970-01-01 sera la fecha vencida de caducidad de la cuenta.
Una vez hecho esto, el usuario al tratarse de loguear recibira el siguiente mensaje en pantalla:
Your account has expired; please contact your system administrator
Sin embargo, si el usuario intenta loguearse por SSH, no recibira ningun mensaje acerca de la caducidad de la cuenta, solamente le arrojara error de contraseña:
usuario@s192.168.0.1’s password:
Permission denied, please try again.
usuario@192.168.0.1’s password:
Permission denied, please try again.
usuario@192.1680.1’s password:
Permission denied (publickey,password).
Ahora, para ver el estado de una cuenta de usuario, haremos uso del comando chage:
chage -l usuario
Lo que arrojara algo como esto:
root@192.168.0.1:~# chage -l usuario
Último cambio de contraseña :jul 11, 2014
La contraseña caduca : nunca
Contraseña inactiva : nunca
La cuenta caduca : ene 02, 1970
Número de días mínimo entre cambio de contraseña : 0
Número de días máximo entre cambio de contraseña : 99999
Número de días de aviso antes de que caduque la contraseña : 7
De esta forma podremos ver si la cuenta esta temporalmente suspendida o no.
Por ultimo, para reestablecer la cuenta, bastara con ponerme una fecha de caducidad no vencida:
usermod -L -e 2020-01-01 usuario
se debe colocar «passwd -u usuario» para desbloquear la password y luego colocar nuevamente usermod con fecha futura pero sin el -L, por que de lo contrario la password, seguira bloqueada.