bonjour à tous,
est-il possible de creer un lien web "quitter" sur une page HTML locale, qui a pour but de fermer le navigateur Firefox et de déconnecter l'utilisateur de son interface kde afin qu'il se retrouve sous le menu KDM?
merci pour vos reponses!
# Non !
Posté par Gyro Gearllose . Évalué à 2.
Je crois savoir que c'est faisable avec du javascript signé, à la condition que la seule application exécutée après le login dans kdm soit justement firefox, et qu'il soit appelé dans un script-shell qui se déconnecte juste après l'exécution de firefox. Ce qui a pour conséquence que le simple fait de quitter firefox quitte l'environnement graphique.
Autrement, pour le coup du javascript signé, je laisse le soin à ceux qui connaissent mieux que moi le système de t'expliquer comment procéder. Je n'en ai pour ma part qu'une idée très vague.
Je pense que c'est une question de sécurité. A faire confirmer donc, mais tu as probablement la moitié du problème de résolue.
[^] # Re: Non !
Posté par chraa_n . Évalué à 1.
aprés la connexion KDM, firefox se lance avec la page HTML en question. aucune autre appli n'est disponible ni par menu ou autre.
on peut faire un lien web pour quitter firefox et creer un script qui "ecoute" firefox et lorsque firefox se ferme, il lance une commande qui deconnecte l'utilisateur de KDE.
en ce qui concerne la commande qui deconnecte kde, je sais faire!
mais quel script faut-il faire pour "ecouter" une appli et un lien web qui ferme firefox je sais pas faire?!
merci encore
[^] # Re: Non !
Posté par pierthi . Évalué à 4.
Édite simplement ton .xsession ou .xinitrc en mettant
#!/bin/sh
firefox http://ma.page.oueb/(...)
Et voilà. Lorsque firefox quittera, la session X se terminera et ce sera ton gestionnaire de connexion (KDM en l'occurence) qui s'appercevra de la déconnexion. Un petit coup de javascript pour mettre firefox en plein écran et hop autant de RAM en plus pour naviguer.
Sinon, pour lancer une commande externe en JavaScript, même signé, je ne pense pas que ça soit possible. En tous les cas, j'avais cherché à faire un truc dans le genre, mais j'ai laissé tombé, vu que je n'ai absolument rien trouvé. La signature, il me semble, sert juste à accéder à certaine partie critique du navigateur. Ça serait de toute façon un tel nid potentiel de trou de sécurité, que c'est pas plus mal que ça n'existe pas.
[^] # Re: Non !
Posté par chraa_n . Évalué à 1.
>Édite simplement ton .xsession ou .xinitrc en mettant
>#!/bin/sh
>firefox http://ma.page.oueb/(...)(...)
>Et voilà. Lorsque firefox quittera
là est le probleme, firefox se lance en plein ecran(par defaut) avec rien pour le quitter d'où le lien qui permet de le quitter. ce lien doit ressembler à quoi?
pas possibilité d'installer un serveur apache pour cette manip, merci quand même pour cette piste
merci encore.
[^] # Re: Non !
Posté par liberforce (site web personnel) . Évalué à 4.
<a href="javascript:window.close"> Quitter </a>
Il y a aussi une propriété dans firefox à fixer dans le about:config. Il faut mettre "dom.allow_scripts_to_close_windows" à true. Elle permet la fermeture d'une page qui n'a pas été ouverte par un script.
Pour le reste, je sais pas, je suis sous GNOME :-) ...
[^] # Re: Non !
Posté par liberforce (site web personnel) . Évalué à 1.
[^] # Re: Plein de moyen, mais via html+javascript je vois pas...
Posté par Raphaël G. (site web personnel) . É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...
[^] # Re: Plein de moyen, mais via html+javascript je vois pas...
Posté par phoenix (site web personnel) . Évalué à 2.
>de fonctions ultra-basique et qui se veut léger et non dangereux
>comme l'activeX sous win!!!
Pas du tout
J'ai écris dans mon enfance (je n'avais pas encore gouté à Linux), un activeX pour une page WEB.
J'arriver à lire, écrire et parcourir le disque dure de l'utilisateur à souait.
Si l'utilisateur accepte le certificat, un activeX peut te formater un disque ou faire n'importe quoi sur ta machine.
Le javascript, lui, ne sait acceder qu'au champs de la page HTML (et quelques paramêtre de l'utilisateur)
[^] # Re: Plein de moyen, mais via html+javascript je vois pas...
Posté par skeespin (site web personnel) . Évalué à 2.
tu fais un cgi simple, ca suffit
quit.cgi
#bin/bash
/usr/bin/sudo /etc/init.d/dm restart
ne pas oublier de charger le module cgi dans le httpd
[^] # Re: Plein de moyen, mais via html+javascript je vois pas...
Posté par liberforce (site web personnel) . Évalué à 2.
[^] # Re: Plein de moyen, mais via html+javascript je vois pas...
Posté par skeespin (site web personnel) . Évalué à 3.
<LIMIT GET POST>
order deny,allow
deny from all
allow from 127.0.0.1
< /LIMIT>
[^] # Re: Plein de moyen, mais via html+javascript je vois pas...
Posté par Raphaël G. (site web personnel) . Évalué à 2.
dcop ksmserver default logout 0 0 0
Pour le truc hardcore, bon je savais pas trop ce que voulais faire le gonz, mais si il veux se bricoler un intranet/extranet pour gérer son pc a distance ben je lui ai passé une solution, certe un peu lourde, mais bon vu comme je me sert de mon serveur apache chez moi je trouve ça pas mal.
Bon après au niveau sécu j'ai essayé de lui faire un truc simple sans prise de tête...
Dans mon optique de page intranet il me semblait évident qu'il allais faire une sécurisation comme bon lui semble.
En plus la méthode des communication par dcop l'oblige a choisir l'utilisateur a déconnecter avec un formulaire et donc rajouter un champ pass tout bête avec une comparaison variable = chaine suffit.
Si il y pas de sélection d'utilisateur il devrais utiliser un truc dans ce style en root:
dcop --all-users ksmserver ksmserver logout 0 0 0
ps : sous la mandriva 2006.0 les htaccess seront désactivé pour raison de perf (et surement que d'autre distrib suivront)
donc pour la potabilité rajouter dans le /etc/httpd/httpd.conf :
<Directory "/la_où_tu_a_ton_script">
#option qui va bien ici
<LIMIT GET POST>
order deny,allow
deny from all
allow from 127.0.0.1
</LIMIT>
</Directory>
Sous debian c'est le fichier /etc/apache/httpd.conf (mais les .htaccess ne sont pas désactivés par défaut)
En espérant que ça l'aide, si il veux plus d'info, suffit de préciser...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.