Cómo bloquear o deshabilitar inicios de sesión de usuarios normales en Linux


Como administrador del sistema, inevitablemente realizará mantenimientos programados del sistema en algún momento u otro. Algunas veces, su sistema también puede encontrar algún problema (s) y se verá obligado a dejarlo para solucionar el problema (s). Cualquiera que sea la situación, es una buena idea evitar que usuarios no root (normales) se conecten al sistema.

En este artículo, describiremos cómo bloquear inicios de sesión de usuarios no root utilizando el archivo /etc/nologin así como un shell nologin en Linux. Veremos cómo configurar un mensaje que explique a los usuarios lo que realmente está sucediendo.

Cómo bloquear inicios de sesión del usuario usando el archivo / etc / nologin

La función principal del archivo /etc/nologin es mostrar un mensaje (almacenado en el archivo) a los usuarios que intentan iniciar sesión en un sistema durante el proceso de apagado.

Una vez que el mensaje ha sido mostrado al usuario, el proceso de inicio de sesión finaliza, lo que evita que el usuario inicie sesión en el sistema.

Esto se puede usar para bloquear el inicio de sesión del usuario creando manualmente el archivo de la siguiente manera.

# vi /etc/nologin

Agregue el siguiente mensaje al archivo, que se mostrará a los usuarios que intenten iniciar sesión en el sistema.

The Server is down for a routine maintenance. We apologize for any inconvenience caused, the system will be up and running in 1 hours time. For more information, contact the system admin [email protected]. 

Ahora puedes probar si todo funciona; Como puede ver en la siguiente captura de pantalla, un usuario normal tecmint no puede iniciar sesión.

Cómo bloquear inicios de sesión del usuario usando el shell nologin

Este método funciona de forma un poco diferente: solo impide que un usuario acceda a un shell. Pero él o ella puede iniciar sesión en el sistema a través de programas como ftp que no necesariamente requieren un shell para que el usuario se conecte a un sistema.

Además, puede permitirle bloquear el acceso de shell a usuarios específicos en escenarios especiales.

Simplemente use el comando chsh ( cambiar shell ) para cambiar el shell de los usuarios en el archivo /etc/passwd de algo como /bin/bash o /bin/sh a /sbin/nologin , lo que significa rechazar un inicio de sesión.

# chsh -s /bin/nologin tecmint

Aquí, tienes que usar el archivo /bin/false . El siguiente comando cambia el shell de tecmint's a /bin/false , lo que significa que no hace nada (después de que el usuario proporcione las credenciales de inicio de sesión):

$ sudo chsh -s /bin/false tecmint

También te puede interesar leer los siguientes artículos relacionados.

  1. How to Enable and Disable Root Login in Ubuntu
  2. Resetting/Recovering Forgotten Root User Account Password in RHEL/CentOS 7
  3. How to Restrict SFTP Users to Home Directories Using chroot Jail
  4. How to Set and Unset Local, User and System Wide Environment Variables in Linux

¡Eso es todo por ahora! Si tiene alguna pregunta o ideas adicionales para compartir sobre este tema, utilice el formulario de comentarios a continuación.