Como posso fazer logoff de usuários ociosos?

4

Eu tenho alguns PCs quiosque que funcionam muito bem como a sessão de convidado do Ubuntu. O usuário do quiosque em casa tem um sistema de arquivos sindicalizado montado sobre ele para que não seja possível alterar nada, mas ainda pode salvar arquivos enquanto trabalha na máquina (e levá-los com eles usando uma chave USB).

Os usuários às vezes deixam as emissoras com conteúdo particular ainda na área de trabalho. Por causa disso, eu quero que eles sejam desconectados após - digamos - 10 minutos de inatividade (o sistema de arquivos da união será esvaziado no logout).

Qualquer ideia, se houver uma solução existente (o autolog apenas desconecta o usuário das sessões de terminal ativas).

    
por mniess 06.11.2014 / 19:08

2 respostas

4

Frustrado com autolog , escrevi meu próprio script também. Está no Github .

  • É geral o suficiente para vários usuários, em sessões X e TTYs.
  • Incluí um trabalho do Upstart, supondo que o script seja colocado em /usr/bin/idlekiller

Para configurá-lo:

sudo apt-get install xprintidle
sudo wget https://raw.githubusercontent.com/murukeshm/scratchpad/master/linux/idlekiller/idlekiller.conf -O /etc/init/idlekiller.conf
sudo wget https://raw.githubusercontent.com/murukeshm/scratchpad/master/linux/idlekiller/idlekiller -O /usr/bin/idlekiller
sudo service idlekiller start
    
por muru 06.11.2014 / 23:47
3

Eu escrevi meu próprio script para fazer isso. Existe uma ferramenta chamada xprintidle que oferece o tempo ocioso de uma xsession. Você precisa instalá-lo primeiro

sudo apt-get install xprintidle

Em seguida, crie o script, por exemplo, em /root/bin/idle_check.sh :

#!/bin/sh

DISPLAY=:0
TIMEOUT=600000 # 10min = 10 * 60 * 1000

if [ $(xprintidle) -gt $TIMEOUT ]; then
    notify-send -t 60000 -i system-shutdown-panel-restart -u critical "WARNING" \
        "This machine looks idle and will be logged out in 60s.\nTo prevent this, move the mouse!"
    sleep 60;
    if [ $(xprintidle) -gt $TIMEOUT ]; then
        pkill -u matthias
    fi
fi

Eu abri o crontab das raízes para verificar a cada minuto

sudo -i
crontab -e

e parece com isso

SHELL=/bin/bash
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11
*/1 * * * *   /root/bin/check_idle.sh > /dev/null 2>&1

Funciona como um encanto.

    
por mniess 06.11.2014 / 22:54

Tags