Felhasználó idő korlátozás

Fórumok

Azt meg tudom csinálni, hogy adott felhasználó egy nap csak max x percig tudja használni a gépet?

Néztem a limits et, meg disk quotat, de azok ilyen korlátozást nem tudnak.

Köszi, Csaba

Hozzászólások

Először tisztázzuk a 'használat' és a 'felhasználó' fogalmát, de egyszerűbb, ha elmondod hova kell.

Azt szeretném, ha x user a gépen egy nap max 120 percen át lehetne belépve.

Ezt a 120 percet akár hány belépés alkalmával kimerítheti, pl 2x60 perc, vagy egyszer 30 perc, egyszer 90 perc, stb.

Otthonra kell, hogy a gyerekeknek egyenlő, de limitált gépidő jusson.

(A szülői felügyeletről szóló okosságokat kéretik, hogy mindenki tartsa meg magának.)

Köszi:

Csaba

Ez egy fokkal érdekesebb így. A fantasztikus Windows (TM) parental control-t (minden nap csak du 4-6 között gépezhet a gyerek) pam_time modullal kell megcsinálni (debian alatt /etc/security/time.conf). Konyhakész megoldásokat vagy a PAM vagy a különféle session managerek (gnome/kde/stb...) között kell keresni.

Végül is, ha lenne rá max. 2 órám, és nincs google, akkor valami crontab alapú bunkó perl script-et heggesztenék. Ez nézegetné, hogy ki van belépve, vágná a centit, oszt kill, ha lejárt aznapra.

Öhmmm...

Pár órai próbálkozás után én is segítséget kérnék:

Hogy lehet beüzemelni a pam_time modult?

Nem nagyon látom át a pam működését, légyszi valako mondja meg, hogyan kell megcsinálni, hogy a konzolos login illetve gdm login esetén a pam_time ellenőrizze, hogy adott user beléphet e.

Köszönöm:

Csaba

Debian-ban van egy /etc/pam.d könyvtár. Itt lehet per bináris megmondani, hogy milyen PAM modulokat használjon. Pl. a gdm-nek van ilyen. Azt meg nézd meg a pam_time doksijában, hogy az auth-hoz, vagy a session-höz tartozik -e.

Magánvélemény: ha spéci dolog kell, és értesz valami script nyelven, akkor csináld úgy. Pár óra alatt már meglett volna.

#!bin/bash
#idovisszaszamlalas...
#szukseges hozza a slay
#rootban futtasd!
#Ez a kis script amit osszedobtam nagyjabol 120 percre korlatozza az
#adott felhasznalot.

username=username; #Felhasznalo neve
if [[ `grep -c "/root/script/sc.sh" /etc/crontab` == 0 ]];
then
echo "teljesul";
echo "0 */2 * * * root sh /root/script/sc.sh" >> /etc/crontab;
fi;

if [ ! -e "/root/script/sc.sh" ];
then

if [ ! -d "/root/script" ];
then
mkdir /root/script;
fi;

cp $0 "/root/script/sc.sh";
fi;
if [ -e "./chtime.txt" ];
then
testing_time=`cat ./chtime.txt`;
if [ $testing_time -gt 0 ];
then
echo $testing_time > ./chtime.txt;
else
echo "0" >./chtime.txt
fi;
else
echo "0" >./chtime.txt;
fi;

eltarolt_ido=`cat chtime.txt`;
sleep 30;
addtime=$((($eltarolt_ido+40)));
echo "$addtime">chtime.txt;
if [ $eltarolt_ido -gt 0 ];
then
if [ $eltarolt_ido -ge 160 ];
then
rm "./chtime.txt";
fi;

if [ $eltarolt_ido -ge 120 ];
then
slay $username;
fi
fi;