w usa o tempo de acesso do tty para determinar o quão ocioso alguém está, isso é coberto no idletime (), que mostra o arquivo tty e subtrai seu tempo da hora atual. pkill pode usar um terminal como filtro para matar processos.
Então, você quer matar quem não estiver root e ocioso por mais de 5 minutos?
for t in 'w -h | grep -v '^root' | awk '{print $2}''; do find /dev/$t -amin +5 -exec pkill -t $t \; ; done
O que está acontecendo aqui:
- Use w sem cabeçalhos para encontrar todos os usuários
- Filtre a raiz
- imprima o ttys que é a coluna 2
- para cada linha, faça uma descoberta para testar o tempo de acesso em mais de 5 minutos
- se for, mate todos os processos nesse terminal com pkill