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.