
		Carlos_Cunha
		
		(usa Linux Mint)
		
		Enviado em 05/11/2024 - 15:14h 
		De fato o que passei antes não esta validando as sessões ativas, para  desconectar qualquer sessão  seja ativa ou não, em X tempo, ai so com  Script(acredito)...
Com ajuda do ChatGPT,  tente isso:
sudo vim  disconnect_sessions.sh
 
Cole o contéudo:
 
#!/bin/bash
# Configurações
max_time=3600  # Tempo máximo em segundos (1 hora)
excluded_user="usuario_exemplo"  # Substitua pelo nome de usuário a ser mantido
excluded_ip="192.168.1.100"  # Substitua pelo IP que deseja manter
# Lista todos os processos SSH ativos
for pid in $(pgrep sshd); do
    # Obtém o tempo de execução e informações do processo
    elapsed=$(ps -o etimes= -p "$pid" | tr -d ' ')
    user=$(ps -o user= -p "$pid" | tr -d ' ')
    ip=$(ps -o args= -p "$pid" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1)
    # Verifica se o processo excedeu o tempo e não é o usuário/IP excluído
    if (( elapsed > max_time )) && [[ "$user" != "$excluded_user" ]] && [[ "$ip" != "$excluded_ip" ]]; then
        kill -9 "$pid"
    fi
done
 
Salve o processo e ajuste a execução :
chmod +x disconnect_sessions.sh
 
Faça um teste, executando o script, ele deve desconectar qualquer sessão mais velha do que o tempo que vc definir, para teste coloque valor baixo...
OBS: Isso e para sessão SSH.
Se funcionar vc pode colocar para rodar de minuto em minuto via crontab.
sudo vim /etc/cron.d/disconnect_sessions.sh
 
# Adicionar alinha
* * * * * /caminho/do/scrip/disconnect_sessions.sh
 
#-------------------------------------------------------------------------------------#
"Falar é fácil, me mostre o código." - Linus Torvalds
#-------------------------------------------------------------------------------------#