Búsqueda de sitios web

Cómo bloquear o deshabilitar los 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 algunos problemas y se verá obligado a dejarlo para solucionarlos. Cualquiera que sea la situación, es una buena idea evitar que usuarios no root (normales) se conecten al sistema.

Lea también: Deshabilite o habilite el inicio de sesión raíz SSH y limite el acceso SSH en Linux

En este artículo, describiremos cómo bloquear los inicios de sesión de usuarios no root usando 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 los inicios de sesión de usuarios 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 finaliza, impidiendo que el usuario inicie sesión en el sistema.

Esto se puede utilizar 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 . 

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

Cómo bloquear los inicios de sesión de usuarios usando nologin Shell

Este método funciona de manera un poco diferente: solo bloquea el acceso de un usuario 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 al shell a usuarios específicos en escenarios especiales.

En RHEL/CentOS/Fedora

Simplemente use el comando chsh (cambiar shell) para cambiar el shell del usuario en el archivo /etc/passwd desde 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í tienes que utilizar 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 raíz en Ubuntu
  2. Restablecer/recuperar la contraseña de la cuenta de usuario raíz olvidada en RHEL/CentOS 7
  3. Cómo restringir a los usuarios SFTP a directorios personales usando chroot Jail
  4. Cómo configurar y desarmar variables de entorno locales, de usuario y de todo el sistema en Linux

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