eduardoleandro
(usa Debian)
Enviado em 19/12/2012 - 15:55h
Uma maneira que achei pratica é o próprio usuario se derrubar em outras sessões quando este ultrapassar o limite estabelecido para ele.
Passo 1)
Criar arquivo com lista de usuarios e determinar o numero de logins para cada um
Eu criei um arquivo chamado usuarios.txt (sem permissão de escrita) no /home.
Dentro voce coloca o usuario=1 (quantidade de logins).
Para facilitar a criação do arquivo pode usar um laço como a seguir:
# cd /home
# for i in `ls -1`;do echo "$i=1" >> usuarios.txt;done
Passo 2)
Em seguida é criar o script que checa o conteúdo do limite do usuário que esta logado:
Pode colocá-lo em um diretorio /usr/bin por exemplo com o nome de LimitLogin.sh com o
seguinte conteudo:
# limite de logins do usuario
LIMIT=`grep $USER /home/usuarios.txt | cut -d "=" -f2`
# Rotina para checagem do limite estabelecido
trap "logout" 2 20
TTY=$(tty | sed 's/\/dev\///g')
nlog=$(w | cut -d ' ' -f1 | grep $USER | wc -l)
if [ $nlog -gt $LIMIT ]; then
clear;
echo -e '\e[33;1m'
echo -n "
==================================================================
Voce ja tem $((nlog-1)) sessao aberta. Deseja elimina-la? (s/n): "
read op
echo -e '\e[m'
case $op in [sS]) for i in `ps U $USER | grep -vw $TTY | \
awk '{print $1}'`; do kill -9 $i 2> /dev/null;
trap 2 20;
done;;
*) exit; logout;;
esac
fi
Passo 3)
Dê permissão de execução para todos os usuários:
# chmod 777 /usr/bin/LimitLogin.sh
Agora é executá-lo para todos os usuários, menos o root claro:
Voce teria que colocar o .profile de cada usuário para que fosse executa na
entrada do sistema, mas uma maneira fácil de fazer é usar o arquivo /etc/profile
que qualquer usuário lê assim que entram no sistema.
Edit o /etc/profile e Cole este conteúdo a seguir ao final:
if [ "${USER}" != "root" ]
then
source /usr/bin/LimitLogin.sh
fi
Pronto, esta é maneira que achei de controlar o limite de login dos usuários. Se por acaso alguma sessão ficar aberta por perda de conexão por exemplo, ou ele esquecer de fechar o login que deixou aberto em outra estação de trabalho, o próprio usuário poderá derrubá-la no próximo login.
Voce pode alterar a quantidade de logins permitidos para alguns usuários no usuarios.txt que criamos no inicio.