[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Limitar o acesso ao sistema baseado em tempo



Prezados,

Usando PAM eu consigo limitar o acesso ao sistema por periodos. Por
exemplo, eu posso permitir o acesso de um /user/ somente entre 16h00 e
22h00.

Mas, eu queria limitar por tempo de uso.

Por exemplo, um /user/ poderia ter ao dispor dele 2 horas de uso do
sistema por dia (00h00 as 23h59). Se ele logar e usar 0h30, ainda
teria 1h30 para uso posterior.

Encontrei varios artigos na net e em um deles [1] tem um script que o
cara diz fazer o que quero, mas nao sei como implementar.

Eis o script

#!/bin/bash

if [ $# -le 1 ] ; then
echo “Usage: username quota ( “$OVER” ]] ; then
if [[ `w $1 -s -h | wc -l` -gt 0 ]] ; then
killall -u $1
killall -s 9 -u $1
sed -i “/^$1/d” /etc/passwd
exit 0
fi
elif [ $VEL -le 10 ] ; then
su – $1 -c “DISPLAY=:0 zenity –warning –title “Brīdinājums” –text
\”Paliku\šas $VEL minūtes\!\”"
else
EXISTS=`grep -c $1 /etc/passwd`
if [ $EXISTS -le 0 ] ; then
case $1 in
“fridrihs” )
sed -i “/^gdm/afridrihs:x:1002:1001:Fridrihs,,,:/home/fridrihs:/bin/bash”
/etc/passwd
;;
“beta” )
sed -i “/^gdm/abeta:x:1001:1001:Beatrise,,,:/home/beta:/bin/bash” /etc/passwd
;;
esac
fi
fi

Como posso implementar esse script?

Ha esse outro, com comando last, que mensura a quantidade de horas
usada pelo user:

last | grep user.*\) | sed -e 's/^.*(//' -e 's/)//' | perl -e
'while(<>) { ($h,$m) = split /:/; $H += $h; $M += $m }; $minutes =
$M%60; $hours = $H + ($M - $minutes)/60;  print "$H:$M\n";'

Qualquer ajuda seria legal.

-- 
  O__   --- Marcelo Luiz de Laia
 c/   /' _ --
(*)   \ (*) -
~~~~~~-
^^^^^^^^^^- Linux user number 487797


Reply to: