[Contrôle parental] limiter la durée d'accès au PC(Résolu)
Publié : sam. 23 juin 2018, 16:06
Une astuce pour limiter la durée d'utilisation du PC d'un utilisateur (luc) remplacez luc par le nom de l'utilisateur
une notification 10 mn avant coupure et une seconde notification 5 mn avant coupure (visuelle + sonore)
Prérequis :
1 - installer
2 - ouverture de session de l'utilisateur (Luc) par son mot de passe.
3 - création de ces fichiers en root.
***************************************************************************
Créer un fichier son.mp3 de quelques secondes (star wars pour Luc) dans le répertoire
installer le paquet
***************************************************************************
Erratum : ce n'est pas dans access.conf mais dans time.conf
Dans
***************************************************************************
Dans
***************************************************************************
Créer le fichier
erratum ligne 10 " au lieu de ' devant Attention
si vous ne voulez pas de fichier son, commentez les lignes en ajoutant un # au début
***************************************************************************
Créer le fichier
*****************************************************************************
créer le fichier
activer les services :
deconnecte.service est appelé par déconnecte.timer
*****************************************************************************
Déroulement du programme :
- la session est autorisée par
- le timer
- le timer lance le programme
une notification 10 mn avant coupure et une seconde notification 5 mn avant coupure (visuelle + sonore)
Prérequis :
1 - installer
libnotify
pour avoir lrs notification2 - ouverture de session de l'utilisateur (Luc) par son mot de passe.
3 - création de ces fichiers en root.
***************************************************************************
Créer un fichier son.mp3 de quelques secondes (star wars pour Luc) dans le répertoire
/usr/local/share/deconnecte/son.mp3
qui sera activé en même temps qu'une notification.installer le paquet
sox
pour avoir la commande play.***************************************************************************
Erratum : ce n'est pas dans access.conf mais dans time.conf
Dans
/etc/security/time.conf
ajouter :
Code : Tout sélectionner
#root autorisé à se connecter sans restrictions
*;*;root;Al0000-2400
# luc autorisé à se connecter de 16H45 à 18H40 pendant les jours de semaine, et de 14H00 à 18H40 pendant le week-end (+10mn avant coupure)
*;*;luc;Wk1645-1840|Wd1400-1840
Dans
/etc/pam.d/lxdm
(lxdm ou gdm, kdm, lightdm selon votre gestionnaire de connexion) ajouter :
Code : Tout sélectionner
account required pam_time.so
Créer le fichier
usr/local/bin/deconnecte
:
Code : Tout sélectionner
sess=$(loginctl session-status | awk 'NR == 1 {print $1}')
#echo $sess
#echo $USER
sudo -u $USER DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send -t 15000 "Attention $USER" "Arrêt de l'ordinateur dans 10 minutes"
play /usr/local/share/deconnecte/son.mp3
sleep 5m
sudo -u $USER DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send -t 10000 "Attention $USER" "Arrêt de l'ordinateur dans 5 minutes" --icon=dialog-error
play /usr/local/share/deconnecte/son.mp3
sleep 5m
#sudo -u $USER DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send -t 10000 "Attention $USER" "Maintenant on coupe" --icon=dialog-error
systemctl kill-session $sess
sleep 15
systemctl poweroff
si vous ne voulez pas de fichier son, commentez les lignes
Code : Tout sélectionner
play /usr/local/share/deconnecte/son.mp3
***************************************************************************
Créer le fichier
etc/systemd/system/deconnecte.timer
:
Code : Tout sélectionner
[Unit]
Description=chaque jour à la fin de session
[Timer]
#After=logind.target
# tous les jours à 18h35 notifie 10mn puis 5mn et déconnecte à 18h45
OnCalendar=*-*-* 18:35:00
#OnCalendar=Sat,Sun *-*-* 12:12:00
#Persistent=true
Unit=deconnecte.service
[Install]
WantedBy=multi-user.target
créer le fichier
/etc/systemd/system/deconnecte.service
Code : Tout sélectionner
[Unit]
Description=prévient puis ferme la session et poweroff
[Service]
Type=oneshot
ExecStart=/bin/bash /usr/local/bin/deconnecte
User=root
Code : Tout sélectionner
systemctl enable deconnecte deconnecte.timer
systemctl start deconnecte.timer
*****************************************************************************
Déroulement du programme :
- la session est autorisée par
/etc/security/access.conf
jusqu'à 18h40, au delà il ne pourra plus se connecter via le gestionnaire de session (lxdm, gdm,kdm...)- le timer
etc/systemd/system/deconnecte.timer
est lancé automatiquement à l'ouverture de la session- le timer lance le programme
/etc/systemd/system/deconnecte.service
à 18h35 et dure 10 mn avant de couper l'ordinateur (18h45) qui doit être supérieur à l'autorisation d'ouverture de session (18h40).