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
#-------------------------------------------------------------------------------------#