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

Como administrador del sistema, inevitablemente realizarás mantenimientos programados del sistema en algún momento u otro. En algunas ocasiones, tu sistema también puede encontrarse con algún problema y te verás obligado a detenerlo para solucionar dicho(s) problema(s). Sea cual sea la situación, es una buena idea evitar que los usuarios no root (normales) se conecten al sistema.

Leer también: Desactivar o Activar el Inicio de Sesión de Root por SSH y Limitar el Acceso SSH en Linux

En este artículo, describiremos cómo bloquear los 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 está sucediendo realmente.

Cómo Bloquear los Inicios de Sesión de Usuario Utilizando 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 se ha mostrado al usuario, el procedimiento de inicio de sesión se termina, impidiendo que el usuario inicie sesión en el sistema.

Esto se puede utilizar para bloquear el inicio de sesión de usuarios creando manualmente el archivo de la siguiente manera.

# vi /etc/nologin

Agrega el mensaje a continuación 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 puedes ver en la captura de pantalla a continuación, un usuario normal tecmint no puede iniciar sesión.

Block User Login in Linux

Cómo Bloquear Inicios de Sesión de Usuario Usando el Shell nologin

Este método funciona de manera un poco diferente: solo bloquea a un usuario de acceder a un shell. Pero él o ella pueden 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 al sistema.

Además, te permite bloquear el acceso al shell a usuarios específicos en escenarios especiales.

En RHEL/CentOS/Fedora

Simplemente usa 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

En Debian/Ubuntu

Aquí, debes usar el archivo /bin/false. El siguiente comando cambia el shell del usuario tecmint a /bin/false lo que significa no hacer 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. Cómo Habilitar y Deshabilitar el Inicio de Sesión de Root en Ubuntu
  2. Restablecer/Recuperar la Contraseña de la Cuenta de Usuario Root Olvidada en RHEL/CentOS 7
  3. Cómo restringir a los usuarios de SFTP a los directorios de inicio mediante la cárcel chroot
  4. Cómo establecer y desestablecer variables de entorno locales, de usuario y de sistema en Linux

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

Source:
https://www.tecmint.com/block-or-disable-normal-user-logins-in-linux/