PDA

View Full Version : De computertijd van je kinderen beperken



Knurpht
20-Jul-2018, 12:55
Op het web wordt de vraag nogal eens gesteld, hoe je kunt zorgen dat je kinderen na een bepaalde tijd niet meer, of voor een bepaalde tijd nog niet op hun computer kunnen inloggen, en de computer keihard uitgaat na een paar waarschuwingen. Hieronder de instructies om dat op openSUSE voor elkaar te maken. Ik vermoed dat dit op andere disros ook prima zal werken, misschien dat je dan even moet zoeten waar welke bestanden staan, of zenity geïnstalleerd is, maar de rest is puur linux en zou moeten werken.

Eerst zorgen dat pam er weet van heeft dat de pam_time module gebruikt moet worden, omdat die module het mogelijk maakt om op allerlei manieren en niveaus inlog tijden te beperken. In dit voorbeeld gaat het om kind X, met een eigen computer op z'n kamer. Die moet om half acht naar bed, dus om 19:15 uur is het wassen, plassen, tandenpoetsen en voorlezen. De computer moet dan dus uit zijn, en daarna door X niet te gebruiken voor 7 uur 's ochtends.



In /etc/pam.d/common-account-pc voeg je onderaan een regel toe, met dit commando:


sudo echo "account required pam_time.so" >> /etc/pam.d/common-account-pc


Vervolgens gaan we bepalen dat gebruiker 'USER' alleen tussen 's morgens 7 en 's avonds 19:15 mag inloggen. Vervang hieronder USER door de gebruikersnaam van X, REALNAME door de echte naam van het X.

In /etc/security/time.conf voeg je onderaan een regel toe met dit commando


sudo echo "*;*;USER;Al0700-1915" >> /etc/security/time.conf

waarbij Al staat voor alle weekdagen, de tijd spreekt wel voor zich.

Maar, daarmee ben je er nog niet, want je wilt ook dat de PC uit gaat om 19:15u, en we gaan dat even netjes doen, zodat zoon/dochter keurig twee keer een melding krijgt ... Dat doe je via crontab. Eerst zorgen dat de PC uit gaat, da's nl. een taak voor root:

Doe het volgende


sudo crontab > ~/cronfile


Open het bestand 'cronfile' ( staat in je home ) met een editor naar keuze, en voeg deze regel toe:

15 19 * * * /sbin/poweroff
En meteen zorgen dat 'root' daar weet van heeft:

sudo crontab < cronfile
rm cronfile



Nu moeten we alleen nog zorgen dat de meldingen weergegeven kunnen worden, en er ook zijn, en dat doen je in /home/USER/.bashrc en de crontab van USER.
Hier niet USER vervangen !!!!!


echo "xhost local:$USER > /dev/null" >> ~/.bashrc


Open nu een editor, en zet onderstaande regels in een nieuw bestand. Sla het op als /home/USER/cronfile



5 19 * * * export DISPLAY=:0 && /usr/bin/zenity --warning --text="Beste REALNAME, nog 10 minuten en dan gaat de PC uit"
10 19 * * * export DISPLAY=:0 && /usr/bin/zenity --warning --text="Beste REALNAME, nog 5 minuten en dan gaat de PC uit"


en zorg dat de crontab van USER die gaat gebruiken



crontab < cronfile
rm cronfile


Nu de PC opnieuw opstarten, en dan moet alles werken. Je kunt met in /etc/security/time.conf lezen hoe en wat je allemaal in kunt stellen. Zo kun je bijv, zorgen dat X alleen 's avonds kan gamen.

ComputerSmurf
22-Jul-2018, 04:27
Hey!

Heel goed artikel en werkt perfect!
Alleen is Zenity niet standard geinstalleerd tenminste niet op TW
Dus voor de gene die deze handleiding volgen installeer ook zenity en dan werkt het super

;)

TriMoon
16-Aug-2020, 05:33
En meteen zorgen dat 'root' daar weet van heeft:

sudo crontab < cronfile
rm cronfile



Die laatste [ is een typo ;)
En ik denk dat gebruik maken van systemd-units in combinatie met systemd-timers een makelijkere manier zou wezen voor mensen, mischien dat iemand of ik dat destijds kan scrijven...
Leuk idee trouwens :good:

Knurpht
27-Aug-2020, 10:11
Die laatste [ is een typo ;)
En ik denk dat gebruik maken van systemd-units in combinatie met systemd-timers een makelijkere manier zou wezen voor mensen, mischien dat iemand of ik dat destijds kan scrijven...
Leuk idee trouwens :good:

Typo verbeterd, bedankt.