Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/03/2010, à 11:56

wlourf

Déconnexion automatique (ou comment stresser ses gosses avec conky !)

Bonjour,

Je ne sais pas pour vous mais chez moi je dois répéter au moins dix fois à mon gosse qu'il est temps qu'il arrête de faire de l'ordi. Comme c'est un peu lassant, j'ai fait un petit script qui autorise une certaine durée de connexion par jour et ferme la session si cette durée est dépassée, le temps restant s'affiche sur le bureau grâce à Conky.
Le script est fait pour Gnome.
En cas de tentative de reconnexion le même jour, la session ne durera que 30 secondes tongue

Premièrement, créer un dossier caché dans le dossier $HOME de l'utilisateur concerné par le script. Dans les scripts, ce sera le chemin ~/.logout qui sera utilisé :

 mkdir ~/.logout/

et y placer les trois fichiers suivants :
le conky (conkyrc-logout) :

# set to yes if you want Conky to be forked in the background
background no
update_interval 1

cpu_avg_samples 2
net_avg_samples 2

override_utf8_locale yes

double_buffer yes
no_buffers yes

#own_window yes
own_window_type desktop
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0

# X font when Xft is disabled, you can pick one with program xfontsel
font 7x13

# Use Xft?
use_xft yes


# Xft font when Xft is enabled
xftfont monospace-18

# Text alpha when using Xft
xftalpha 0.5

# Draw shades?
draw_shades yes

# Stippled borders?
stippled_borders 0

# Default colors and also border colors
default_color yellow
default_shade_color blue

alignment br
gap_x 1
gap_y 1

# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer right

# Subtract file system buffers from used memory?
no_buffers yes

TEXT
Arrêt dans ${exec ~/.logout/temps_reste.sh}

Le script /temps_reste.sh qui renvoie le temps restant vers le conky et deconnecte si besoin :

#! /bin/bash

#st in seconds
st=$(~/.logout/lire_reste.sh)

RUNTIME=$((st))
SECOND=$((RUNTIME%60))
MINUTE=$((RUNTIME/60%60))
HOUR=$((RUNTIME/3600))

if [ "$SECOND" -lt 10 ]; then
	SECOND="0$SECOND"
fi
if [ "$MINUTE" -lt 10 ]; then
	MINUTE="0$MINUTE"
fi
if [ "$HOUR" -lt 10 ]; then
	HOUR="0$HOUR"
fi

echo $HOUR":"$MINUTE":"$SECOND
if [ "$RUNTIME" -lt 0 ]; then
	gnome-session-save --force-logout
fi

et le script lire_reste.sh qui lit le temps restant et enregistre ce temps dans le fichier .compteur.txt, c'est ce fichier qui doit être modifié si vous voulez ajouter ou enlever du temps.
La durée par défaut est fixée à une heure (3600 secondes) avec la variable duree à la ligne 4

#! /bin/bash

log=~/.logout/.compteur.txt
duree=3600

if [ ! -f $log ]; then
	echo "pas de fichier"
	echo $(date +%Y%m%d)";"$duree > $log
fi

today=$(date +%Y%m%d)

reste=-1
line=`tail $log`

xday=$(echo $line | cut -d";" -f1)
if [ $xday -eq $today ]; then
	reste=$(echo $line | cut -d";" -f2)
	hasdate=true
	if [ $reste -lt 0 ]; then
		reste=30
	fi
	reste=$((reste-1))
else	
	reste=$duree
fi
echo $today";"$reste > $log

echo $reste

Si le gosse tente de se reconnecter alors que son temps est dépassé, alors la session ne durera que 30 secondes (reste=30) ci-dessus lol

N'oubliez pas de rendre exécutables les scripts :

chmod +x ~/.logout/lire_reste.sh
chmod +x ~/.logout/temps_reste.sh

et pour lancer le tout, utilisez la commande (à placer dans le démarrage de gnome):

conky -c ~/.logout/conkyrc-logout

Et voilà, le résultat en image pour finir :
1269773679.png

Dernière modification par wlourf (Le 31/03/2010, à 21:03)

Hors ligne

#2 Le 28/03/2010, à 12:12

Gage

Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)

Fais gaffe.

Un jour, ton fils deviendra malin et supprimera purement et simplement le script. Ou bien il éditera manuellement le fichier de log (c'est plus malin, parce que ça t'empêche de faire un autre script qui vérifie la présence du premier). Il y a deux solutions :
- Surveiller ton fils par toi-même (parfois plus facile à dire qu'à faire)
- Placer le script dans un répertoire où ton fils peut lire et exécuter, mais pas écrire. Mais dans ce cas, ça impose que le script soit exécuté avec d'autres droits que ceux de ton fils, pour qu'il puisse écrire dans son fichier de log.


Ça, ce sont les sources. Le mouton que tu veux est dedans.
Merci, c'est tout à fait comme ça que je le voulais ! Crois-tu qu'il faille beaucoup de ressources à ce mouton ? Parce que ma config est toute petite...
Ça devrait aller. Tu peux te compiler un petit mouton.
Pas si petit que ça. Tiens ! il s'est mis en veille...

Hors ligne

#3 Le 28/03/2010, à 12:19

Кຼزດ

Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)

Le mieux serait de lancer le script au démarrage de la session, et qu'il génère lui-même le fichier.
Ça permettrait de gérer plus efficacement les droits (lui retirer les droits en écriture sur les fichiers, pour pas qu'il les enlève).


dou

Hors ligne

#4 Le 28/03/2010, à 12:42

wlourf

Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)

Je suis d'accord avec vos remarques mais il  n'en est pas encore au point d'aller fouiller dans les dossiers ou de faire un "killall conky", heureusement ... et il ne fait de l'ordi que lorsque un adulte est présent, c'est juste pour gérer le temps de connexion.
On va dire que c'est pour du 12 ans maximum smile

Hors ligne

#5 Le 28/03/2010, à 12:48

clapico

Re : Déconnexion automatique (ou comment stresser ses gosses avec conky !)

Une autre solution efficace est d'installer "Nanny" qui joue un role de controle parental et qui permet de choisir les plages horaires d'utilisation et de surf par utlisateur :
http://www.unixmen.com/news-today/853-g … me-ubuntu-


http://www.clapico.com/ : mon p'tit blog avec mes p'tits trucs et mes p'tites découvertes de p'tit Ubuntéro

Hors ligne