Depuis deux jours, je m'arrache les cheveux sur un problème incompréhensible… Je voudrais supprimer la possibilité de reboot et de halt depuis une session distante XFCE ou LXDE connecté via NX. Ca a marché mais je ne sais pas ce que j'ai modifié car cela ne marche plus ! Symptôme, la boite de dialogue en fermeture de session arrête ou reboot le poste ce qui n'est pas sympa pour un poste commun !
-1- Impossible de dé-activer les boutons Restart et Rebbot dans XFCE et LXDE… Très très chiant.
-2- Cela passe par polkit-1 et console-kit. Par sudo et les groupes, c'était trop simple à comprendre dont maintenant, il faut des daemons et tout et tout (deux jours, cela fatigue…)
-3- On finit par modifier dans /usr/share/polkit-1 (syntaxe XML) puis comme c'est pas propre dans /etc/polkit-1 (syntaxe INI) pour dire NO a tout le monde, active, pas active… Encore un truc que pas grand monde va maîtriser ! Et là, cela a marché mais ne marche plus ! Pourquoi ?
-4- On ferme le session, click sur Reboot et bing, ca reboot !
-5- A force de cherche, on trouve un doc pour tester sa config.
dbus-send --system --dest=org.freedesktop.ConsoleKit --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.CanRestart
method return sender=:1.4 -> dest=:1.19 reply_serial=2
boolean false
On est content, notre config est bonne, on n'a pas le droit de rebooter. On va donc plus loin :
dbus-send --system --dest=org.freedesktop.ConsoleKit --type=method_call --print-reply --reply-timeout=2000 /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Error org.freedesktop.ConsoleKit.Manager.NotPrivileged: Not Authorized
On retrouve le message de LXDE lorsque cela marchait (mais ca ne marche plus). Du coup, je lance dans le même terminal pour être vraiment avec les mêmes variables d'environnement
lxsession-logout
Je clique sur Restart et bing, reboot du poste sans même me demander quoi que ce soit !
-6- Comme je suis très patient, je teste en lançant la session via console-kit car j'ai vu quelques post faire cela…
/usr/bin/ck-launch-session /usr/bin/startlxde
Inutile de dire que cela ne change rien…
Bilan : soit j'ai rien compris à polkit, soit il y a un programme cachés quelques pars (mais j'ai fait une recherche de tous les programmes suid avec rien de bizarre)… Comment fonctionne ces daubes de sessions ?
J'avoue que ces services dans tous les sens avec les applications globales, ça comme à me faire chi… fortement ! C'est très bien pour les téléphones mais je doute de plus en plus qu'on gagne en RAM et en vitesse réellement quoi que ce soit.
Y en a t'il dans la salle qui ont une idée du pourquoi du comment ?
# personne n'est connecté en meme temps.
Posté par NeoX . Évalué à 2.
ici, sous ubuntu (unity ou gnome) je ne peux pas redemarrer dans un seul cas :
- quand un autre utilisateur est connecté.
si personne n'est connecté, la machine redemarre
si quelqu'un d'autre est connecté, la session se deconnecte, sans rien faire de plus.
[^] # Re: personne n'est connecté en meme temps.
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
C'est pareil sous debian squeeze (sauf que j'ai changé cela via polkit sur les postes utilisateurs et que ma config polkit fonctionne bien).
Ici, le cas est différent, je ne suis pas dans une session démarré via gdm ou équivalent. Il n'y a aucune session locale. D'ailleurs, ni gdm (gdm3, kdm), ni gnome-session ne sont installé sur le poste car il s'agit d'un serveur en rack (en pratique, il y en a plusieurs).
Les sessions s'ouvrent via NX (freenx + nxclient). Du coup, j'ai un comportement que je ne comprends pas… Je pense que c'est du à la procédure de lancement ainsi qu'aux classements des sessions dans console-kit mais à dire vrai, je n'en sais rien !
Je n'utilise pas GNOME via NX car tant GNOME que KDE mette à plat n'importe quelle machine dès qu'on a plusieurs utilisateurs… On a donc juste besoin d'un window manager léger pour ne faire que quelques opérations graphiques. Pour des raisons de 3D, un ssh tout simple n'est pas satisfaisant (Ansys merde grave par exemple selon le client). Via NX, la 3D a lieu sur le serveur et les choses dépendent bien moins du poste client.
[^] # Re: personne n'est connecté en meme temps.
Posté par claudex . Évalué à 3.
Et tu es sûr que LXDE utilise polkit pour l'action de redémarrage sur ton installation?
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: personne n'est connecté en meme temps.
Posté par Sytoka Modon (site web personnel) . Évalué à 2.
J'ai le même comportement avec XFCE… De plus, j'ai pas les droits sudo !
[^] # SOLUCE partielle
Posté par Sytoka Modon (site web personnel) . Évalué à 3.
Sous squeeze, c'est manifestement encore HAL qui s'occupe du shtutdown et du reboot via les script sous
Malgré des droits sévère dans polkit testé ce matin
J'ai mis un peu tout… (un peu le bordel ce nommage dans polkit, parfois en petit, parfois des majuscules, parfois, ca a pas le même nom des deux coté (consolekit - system d'un coté, Manager de l'autre).
Bref, j'ai viré HAL et maintenant, il me demande bien le mot de passe sudo pour rebooter, ce qui ne marchera pas pour les utilisateurs.
Pas encore compris à quel niveau exactement HAL/Polkit merdait mais c'est bien la le coeur du problème…
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.