Eu faço algo semelhante nos meus servidores. A essência geral é isso
1) Adicione a /etc/pam.d/login
na parte inferior dos itens session
:
session optional pam_exec.so quiet /etc/pam_session.sh
2) Em seguida, crie /etc/pam_session.sh
as (e chmod +x
):
#!/bin/bash
[[ "$PAM_USER" == "root" ]] && exit 0
SESSION_COUNT="$(w -h "$PAM_USER" | wc -l)"
if (( SESSION_COUNT == 0 )) && [[ "$PAM_TYPE" == "close_session" ]]; then
pkill -u "$PAM_USER"
fi
Se você quiser, adicione algo como sleep 5; pkill -9 -u "$PAM_USER"
após o pkill
para garantir que esteja realmente morto.
Isso só será chamado quando os shells de login saírem, portanto, não afetará a atividade automatizada do sistema. No entanto, se você quiser ser ainda mais seguro, adicione uma verificação de algo como o UID sendo maior que 1000.