et ajouter dans /etc/sudoers (en faisant visudo en root)
/etc/sudoers:
apache ALL=(root) NOPASSWD: /etc/init.d/dm restart
#apache est le nom de l'utilisateur faisant tourner ton serveur web sur la machine où la session graphique dois être éteinte...
Quand tu va aller sur cette page ça va violement relancer l'interface graphique...
(et ce que tu lance la page du net ou depuis ta session graphique...)
Sinon tu peux regarder du côté de dcop pour faire un truc moins violent...
A ce moment là c'est un peu plus complexe car il faudra que tu passe sous le bon utilisateur.
Un truc comme ça devrais marcher (résultat non garanti j'ai pas envie de faire trop de tests sur ma session...):
quitter.php:
<?php
//devrais sauvegarder la session
system("/usr/bin/sudo -u Nom_utilisateur_a_delogger dcop ksmserver ksmserver saveCurrentSession");
//devrais la quitter, fais un test sur ta session en faisant dans une console
//dcop ksmserver ksmserver logout
//si ça te déloggue c'est que c'est bon, sinon faut revoir les arguments,
//mais comme dcop de kde pas de doc (j'en ai pas trouvé) va falloir triffouiller...
system("/usr/bin/sudo -u login_utilisateur_a_delogger dcop ksmserver ksmserver logout");
?>
et ajouter dans /etc/sudoers (en faisant visudo en root)
/etc/sudoers:
apache ALL=(login_utilisateur_a_delogger) NOPASSWD: dcop ksmserver ksmserver saveCurrentSession, \
dcop ksmserver ksmserver logout
#ou alors si tu veux pouvoir le faire pour tous les login, et il te faudra un
#formulaire pour la partie php pour choisir login_utilisateur_a_delogger
apache ALL=(ALL) NOPASSWD: dcop ksmserver ksmserver saveCurrentSession, \
dcop ksmserver ksmserver logout
Je connais pas d'autre solution a part le faire via ssh en ligne de commande ou via un cron qui le fait a interval régulier ou via at qui le fera une fois a un instant précis.
Si c'est simplement pour délogger tes users dans la session courante y a moyen de faire un racourcis avec les commandes dcop ci-dessus, ce sera plus simple...
Si tu veux te manager un ensemble de pc et éteindre les sessions le soir regarde du côté de php qui sait gérer des session ssh, a ce moment là tu fait un batch qui se connecte sur tous les pc et qui recup l'user qui a une session et qui quitte cette session... (Dans ce cas là tu aurra pas besoin d'un serveur apache+php sur chaque pc)
Rappel toi que le javascript est juste un truc permettant un ensemble de fonctions ultra-basique et qui se veut léger et non dangereux comme l'activeX sous win!!!
Donc ils n'implémenteront surement jamais (et heureusement!) ce genre de fonctionalités suicidaire...
Quand au html c'est juste du texte avec quelques options de mise en page basique donc pas la peine de cherche de ce côté...
Bon la solution que je t'ai donné est "raisonablement" sécurisée, mais ne la considère pas comme fiable!!! Un trou de secu dans sudo, une possibilité d'inclure du code php et une personne qui connais comment ça marche et il peux avoir un accès a tout ton système...
Bon après si c'est pour cloturer ta session chez les parent quand tu est dans ta piole étudiante ça suffit largement. Pense a sécuriser ça via une règle htaccess a mettre dans le fichier de conf de apache (les .htaccess sont désactivé sur les distributions récentes pour raison de perf)
Tout ce que je t'ai mis marche pour mandrake/mandriva.
Pour de la debian faut remplacer apache par www-data
Pour les autres distributions lance apache et cherche l'utilisateur a qui apartient le processus (en général apache,www-data,httpd et peut-être nobody(mais ce serais pas une bonne idée)) via : ps aux | grep -e ".*\(www\|apache\|http\)\+.*"
Il suffit de regarder le nom de l'utilisateur a gauche
[^] # Re: Plein de moyen, mais via html+javascript je vois pas...
Posté par Raphaël G. (site web personnel) . En réponse au message un lien web qui envois une commande systeme. Évalué à 0.
Le plus simple est de faire le gros gorret en faisant ceci :
(Attention RIEN de la session ne sera sauvegardé!!!!)
quitter.php:
<?php
system("/usr/bin/sudo /etc/init.d/dm restart");
?>
et ajouter dans /etc/sudoers (en faisant visudo en root)
/etc/sudoers:
apache ALL=(root) NOPASSWD: /etc/init.d/dm restart
#apache est le nom de l'utilisateur faisant tourner ton serveur web sur la machine où la session graphique dois être éteinte...
Quand tu va aller sur cette page ça va violement relancer l'interface graphique...
(et ce que tu lance la page du net ou depuis ta session graphique...)
Sinon tu peux regarder du côté de dcop pour faire un truc moins violent...
A ce moment là c'est un peu plus complexe car il faudra que tu passe sous le bon utilisateur.
Un truc comme ça devrais marcher (résultat non garanti j'ai pas envie de faire trop de tests sur ma session...):
quitter.php:
<?php
//devrais sauvegarder la session
system("/usr/bin/sudo -u Nom_utilisateur_a_delogger dcop ksmserver ksmserver saveCurrentSession");
//devrais la quitter, fais un test sur ta session en faisant dans une console
//dcop ksmserver ksmserver logout
//si ça te déloggue c'est que c'est bon, sinon faut revoir les arguments,
//mais comme dcop de kde pas de doc (j'en ai pas trouvé) va falloir triffouiller...
system("/usr/bin/sudo -u login_utilisateur_a_delogger dcop ksmserver ksmserver logout");
?>
et ajouter dans /etc/sudoers (en faisant visudo en root)
/etc/sudoers:
apache ALL=(login_utilisateur_a_delogger) NOPASSWD: dcop ksmserver ksmserver saveCurrentSession, \
dcop ksmserver ksmserver logout
#ou alors si tu veux pouvoir le faire pour tous les login, et il te faudra un
#formulaire pour la partie php pour choisir login_utilisateur_a_delogger
apache ALL=(ALL) NOPASSWD: dcop ksmserver ksmserver saveCurrentSession, \
dcop ksmserver ksmserver logout
Je connais pas d'autre solution a part le faire via ssh en ligne de commande ou via un cron qui le fait a interval régulier ou via at qui le fera une fois a un instant précis.
Si c'est simplement pour délogger tes users dans la session courante y a moyen de faire un racourcis avec les commandes dcop ci-dessus, ce sera plus simple...
Si tu veux te manager un ensemble de pc et éteindre les sessions le soir regarde du côté de php qui sait gérer des session ssh, a ce moment là tu fait un batch qui se connecte sur tous les pc et qui recup l'user qui a une session et qui quitte cette session... (Dans ce cas là tu aurra pas besoin d'un serveur apache+php sur chaque pc)
Rappel toi que le javascript est juste un truc permettant un ensemble de fonctions ultra-basique et qui se veut léger et non dangereux comme l'activeX sous win!!!
Donc ils n'implémenteront surement jamais (et heureusement!) ce genre de fonctionalités suicidaire...
Quand au html c'est juste du texte avec quelques options de mise en page basique donc pas la peine de cherche de ce côté...
Bon la solution que je t'ai donné est "raisonablement" sécurisée, mais ne la considère pas comme fiable!!! Un trou de secu dans sudo, une possibilité d'inclure du code php et une personne qui connais comment ça marche et il peux avoir un accès a tout ton système...
Bon après si c'est pour cloturer ta session chez les parent quand tu est dans ta piole étudiante ça suffit largement. Pense a sécuriser ça via une règle htaccess a mettre dans le fichier de conf de apache (les .htaccess sont désactivé sur les distributions récentes pour raison de perf)
Tout ce que je t'ai mis marche pour mandrake/mandriva.
Pour de la debian faut remplacer apache par www-data
Pour les autres distributions lance apache et cherche l'utilisateur a qui apartient le processus (en général apache,www-data,httpd et peut-être nobody(mais ce serais pas une bonne idée)) via : ps aux | grep -e ".*\(www\|apache\|http\)\+.*"
Il suffit de regarder le nom de l'utilisateur a gauche
En espérant que ça t'aidera...