Bon, pour faire un peu avancer le sujet :
Il s'agit d'arreter l'ordi SANS mot de passe
sous gnome :
gnome-session-save --kill appelle la petite fenetre qui permet de se deconnecter, changer d'utilisateur, hiberner ... et arreter.
la pluspart de ses actions est declenchée par gnome-power-cmd.sh
a retrouver avec which gnome-power-cmd.sh, ce script est lisible et se retrouve dans /usr/bin (a vérifier, en ce moment, je suis sous win
daube)
on peut visualiser ce que fait ce script, il ne fait qu'appeler une fonction de dbus.
donc celle-ci devrait fonctionner sous xubuntu.
en revanche, si j'ai bien compris
http://en.wikipedia.org/wiki/DCOP , kde3 utilise dcop et non dbus.
c'est un peu complexe a mettre en oeuvre, mais dans le script, on devrait detecter si le processus (demon) dbus fonctionne => 1ere methode, si c'est dcop => 2 eme méthode. Sinon : on ne fait rien parce qu'on ne connait pas.
Pour le lien que Sorbus a indiqué, c'est effectivement très interessant :
Quand un fichier est exécutable par son propriétaire, il peut de plus être setuid. Cela signifie que lorsqu'il est exécuté, il l'est avec les droits de son propriétaire, et non avec ceux de l'utilisateur qui le lance.
ce qui signifie qu'il faudrait créer (en tant que root) un simple script :
shutdown -P now
puis on lui donne les permissions 4755 c'est-à-dire : setuid, rwxr-xr-x
/!\ surtout pas 4775 ! ! ! /!\ *
lancer le script en tant que simple utilisateur, ca devrait fonctionner. Pour ma part, je ne peut pas tester tout de suite.
* : si l'utilisateur peut modifier le fichier, il peut executer n'importe quelle instruction en tant que root sans mot de passe !
[edit] @ strash : dbus est un processus lancé en root, donc, il execute certaines instructions (lesquelles ?) puis execute shutdown en tant que root, donc sans mdp. D'ailleurs, shutdown ne fait au final qu'appeler un init 0 !
[re-edit : aurtograf 😃]