Es posible que mantener sesiones de shell inactivas en un servidor Linux represente un riesgo para la seguridad. Sin olvidar que consumiría recursos del sistema.
De acuerdo, tal vez no sea una sola sesión inactiva, pero imagínese si tiene varios usuarios que acceden al mismo sistema Linux de forma remota y dejan sus sesiones inactivas.
Como administrador de sistemas de Linux, puede ver qué usuarios han iniciado sesión en el sistema y cuánto tiempo han estado inactivos.
Puede expulsar manualmente al usuario inactivo, pero eso es tedioso y ciertamente no muy productivo.
Déjame mostrarte cómo cerrar automáticamente la sesión de los usuarios inactivos desde su shell.
Método 1:Usar TMOUT para cerrar automáticamente la sesión de los usuarios de las sesiones de shell inactivas
En bash y otros shells, puede usar el TMOUT
variable para establecer el tiempo de cierre de sesión inactivo. Si no hay actividad del usuario durante este período de tiempo, la sesión de shell se cerrará.
Compruebe si el TMOUT ya está configurado. Los valores están en segundos.
echo $TMOUT
Para probar, puedes usarlo así:
TMOUT=300
Esto cerrará su sesión de terminal o sesión SSH después de 300 segundos, es decir, 5 minutos.
Para sesiones SSH, debería ver un mensaje como este:
[email protected]:~# timed out waiting for input: auto-logout
Connection to 212.125.89.175 closed.
Para sesiones locales, su terminal debe cerrarse automáticamente.
Pero probablemente ya sepa que no es la mejor manera de establecer una variable de entorno. Puede configurarlo en el perfil de usuario individual (o perfil bash) o configurarlo para todos los usuarios, en todo el sistema, desde /etc/profile.
Suponiendo que usted es un administrador de sistemas y desea cerrar automáticamente la sesión de los usuarios inactivos en su servidor Linux, configúrelo a nivel del sistema.
Abra el archivo /etc/profile en un editor de texto como Vim o Nano:
nano /etc/profile
Y añádele la siguiente línea:
TMOUT=300
Guarde y cierre el archivo. A partir de ahora, cualquier usuario con 5 minutos de inactividad se cerrará automáticamente.
Esto funciona tanto para sesiones locales como remotas. Si desea configurarlo solo para sesiones SSH, el siguiente método es lo que podría usar.
Método 2:Cerrar automáticamente la sesión de los usuarios de las sesiones SSH inactivas
Puede configurar el servidor SSH para forzar el cierre de sesión de un usuario después de cierto período de inactividad.
Edite el archivo de configuración de SSH (/etc/ssh/sshd_config):
sudo nano /etc/ssh/sshd_config
Busque las siguientes dos variables y elimine el # antes de su línea de inicio y establezca valores como este:
ClientAliveInterval 200
ClientAliveCountMax 3
Guarde y cierre el archivo.
Esto significa que el servidor enviará un mensaje de mantenimiento al cliente cada 200 segundos durante 3 veces. Si no recibe respuesta (lo que significa que el usuario está inactivo), cerrará la sesión a los 600 segundos (200*3).
Puede elegir valores adecuados según sus requisitos.
Este es un método solo SSH y no afectará las sesiones de shell locales.
Espero que encuentre útil este consejo de Linux sobre el cierre automático de sesión de los usuarios. Suscríbase para obtener más consejos para administradores de sistemas de Linux.