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/12/2011, à 14:57

Tuc DEUXLUS

reboot et power off sans sudo

bonjour,

comment faire pour pouvoir entrer les commandes poweroff et reboot sans sudo.

Hors ligne

#2 Le 28/12/2011, à 16:07

TraGiKomiK

Re : reboot et power off sans sudo

salut,

en utilisant encore sudo mais en editant le fichier sudoers pour que ton user (et les autres aussi si tu veux) puisse(nt) lancer ces commandes sans saisie de mot de passe, je laisse chercher sur le forum pour les explications car beaucoup de sujets en parle hmm


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#3 Le 28/12/2011, à 16:22

Tomzz

Re : reboot et power off sans sudo

Bonjour,
Sous Lucid j'utilisais cette commande sans vraiment la comprendre:

dbus-send –print-reply –dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown

Ça ne marche plus sous Onieric mais vu l'erreur retournée il s'agit peut-être d'une syntaxe différente a trouver.

process 9180: arguments to dbus_message_new_signal() were incorrect, assertion "_dbus_check_is_valid_path (path)" failed in file ../../dbus/dbus-message.c line 1291.
This is normally a bug in some application using the D-Bus library.
Couldn't allocate D-Bus message

Sinon, avant Lucid il y avait ça

gnome-power-cmd shutdown

Tout ça c'est pour Gnome, pour les autres je ne sais pas.


Je suis étonne qu'il n'y ai pas un paquet pour faire ça de façon simple... il va falloir que je cherche de nouveau.

La solution sudoer n'est pas terrible si on veut distribuer son script.

Hors ligne

#4 Le 28/12/2011, à 21:14

TraGiKomiK

Re : reboot et power off sans sudo

Tomzz a écrit :

La solution sudoer n'est pas terrible si on veut distribuer son script.

Je suis tout a fait d'accord... je cherche aussi une solution qui soit exportable (bien qu'il soit possible de faire un script qui lui modifirait le fichier /etc/sudoers avec la variable $USER, si sudo est installé toutefois tongue)

Si un paquet ou autre solution est trouvée je prend aussi wink


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#5 Le 29/12/2011, à 00:11

n3o51

Re : reboot et power off sans sudo

moi je dirais demander a l'user un

 sudo chmod u+s /sbin/shutdown

ou de demander modification via visudo de /etc/sudoers
au pire dans un script demander un reboot du pc peut être une solution ...


Welcome to the real world
________________________________

Hors ligne

#6 Le 29/12/2011, à 07:23

serged

Re : reboot et power off sans sudo

Il doit y avoir moyen de le faire sans "artifice" (bricolage des sudoers, chmod etc.).

En effet, dans toute interface graphique, il y a toujours une commande "Extinction" qui éteint (ou redémarre) la machine sans passer par sudo...

Mais comment ?


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#7 Le 29/12/2011, à 10:22

Tuc DEUXLUS

Re : reboot et power off sans sudo

Il doit y avoir moyen de le faire sans "artifice" (bricolage des sudoers, chmod etc.).

En effet, dans toute interface graphique, il y a toujours une commande "Extinction" qui éteint (ou redémarre) la machine sans passer par sudo...

Mais comment ?

C'est exactement là ou je veux en venir. Une idée ?

Hors ligne

#8 Le 29/12/2011, à 10:52

loubrix

Re : reboot et power off sans sudo

essaie ça:
pour arrêter

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

pour redémarrer

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

ça fonctionne nativement sans rien modifier (pas besoin de Sudo), et ça doit coller sur toutes les distros récentes, vu que je l'utilisais sous Arch...

Edit: tiens, en prime, on peut aussi lancer la veille sur RAM

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

ou sur disque

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Hibernate

(toutes ces commandes doivent être sur une seule ligne)

Dernière modification par loubrix (Le 29/12/2011, à 11:06)


Asus X50VL - Ubuntu 12.04 AMD64
HP G62 - Ubuntu 12.10 AMD64
Fujitsu-Siemens Amilo EL - Lubuntu 12.04 i686
Manjaro, une rolling pour débutants

Hors ligne

#9 Le 29/12/2011, à 12:21

Tuc DEUXLUS

Re : reboot et power off sans sudo

@Loobrix.

C'est plus long que de le faire en sudo. Y'a pas plus simple ?

Hors ligne

#10 Le 29/12/2011, à 12:28

loubrix

Re : reboot et power off sans sudo

oui c'est plus long, mais ça ne nécessite aucun paramètrage spécial (contrairement à Sudo), et surtout c'est ce qu'il y a de plus propre (au lieu de modifier des permissions comme j'ai vu dans les post précédents).
mais si tu dis ce que tu veux en faire, je pourrais peut-être t'aider un peu mieux (en t'aidant à en faire un script shell plus facile à appeler, par exemple).


Asus X50VL - Ubuntu 12.04 AMD64
HP G62 - Ubuntu 12.10 AMD64
Fujitsu-Siemens Amilo EL - Lubuntu 12.04 i686
Manjaro, une rolling pour débutants

Hors ligne

#11 Le 29/12/2011, à 12:44

AnsuzPeorth

Re : reboot et power off sans sudo

Tuc DEUXLUS a écrit :

@Loobrix.

C'est plus long que de le faire en sudo. Y'a pas plus simple ?

!!!!
C'est bien la première fois que je lis ce genre de reflexion ....

Trop long ??? Franchement, si saisir une dizaine de caractères c'est trop pour toi, laisse tomber la console ou la prog, retourne dans le clicodrome !

De plus, si tu avais fait un minimum de recherche sur dbus, tu remarquerais que ce n'est pas si compliqué que ça !

Par contre, tous les deamons dbus ne sont pas lancés/présents dans toutes les distrib. Il n'y a plus de solutions miracle, comme sur les anciennes version linux (c'était un petit script bash à appeler)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#12 Le 29/12/2011, à 13:52

serged

Re : reboot et power off sans sudo

Tuc DEUXLUS a écrit :

@Loobrix.

C'est plus long que de le faire en sudo. Y'a pas plus simple ?

Tu fais un alias :

alias arret='dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop'

L'intérêt est surtout de le mettre dans un script qui n'a pas à demander le mot de passe sudo.


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#13 Le 30/12/2011, à 13:39

Tuc DEUXLUS

Re : reboot et power off sans sudo

oui c'est plus long, mais ça ne nécessite aucun paramètrage spécial (contrairement à Sudo), et surtout c'est ce qu'il y a de plus propre (au lieu de modifier des permissions comme j'ai vu dans les post précédents).
mais si tu dis ce que tu veux en faire, je pourrais peut-être t'aider un peu mieux (en t'aidant à en faire un script shell plus facile à appeler, par exemple).

A oui je veux bien apprendre a faire un script shell j'en ai jamais fais. ça peut être intéressant merci

Hors ligne

#14 Le 30/12/2011, à 17:49

loubrix

Re : reboot et power off sans sudo

eh bien, tiens:

#!/bin/sh
# Released under the WTFPL by Loubrix, without any warranty.
# You can name your script "exitdesk.sh", and put it in a ~/.script directory.
# Don't forget to 'chmod +x exitdesk.sh'.
# You have to call this script with an argument, like this:
# ~/.script/exitdesk.sh halt
# Supported arguments are "halt", "reboot", "suspend", or "hibernate".
# You can call this script with a menu entry.
# Only use as non-privilege user, not root !
# Enjoy

case "$1" in
        halt)
                dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
        ;;
        reboot)
                dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
        ;;
        suspend)
                dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
        ;;
        hibernate)
                dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
        ;;
        *)
                echo 'This script accepts the following arguments: halt, reboot, suspend, hibernate'
    ;;
esac

voilà, comme indiqué dans le script, tu recopies tout ça dans un fichier texte que tu appelles "exitdesk.sh", que tu rends éxécutable, et que tu places dans un répertoire caché de ton home, ~/.script (c'est une bonne chose de mettre tous ses scripts au même endroit).
pour l'appeler, il faut le faire en indiquant son chemin, et en lui passant un argument au choix (halt, reboot, suspend, hibernate), comme ça:

~/.script/exitdesk.sh reboot

ou bien

~/.script/exitdesk.sh halt

sachant que le "~" indique ton dossier personnel, et que donc ça ne marchera que pour un utilisateur qui a ce script au bon endroit dans son home.
suivant l'environnement que tu utilises, tu peux faire des entrées de menu, ou des raccourcis, en oubliant jamais l'argument; si tu oublies l'argument, ça se verra dans un terminal (message d'erreur), mais pas si tu l'appelles depuis un menu...

PS: les lignes de commande dans le script apparaissent coupées, mais bien sûr, elles sont sur une ligne (par de retour à la ligne); tu pourras le vérifier en élargissant la fenêtre de ton éditeur de texte, mais normalement, si tu fais un copier-coller, ça devrait pas poser de problème...

Dernière modification par loubrix (Le 30/12/2011, à 17:58)


Asus X50VL - Ubuntu 12.04 AMD64
HP G62 - Ubuntu 12.10 AMD64
Fujitsu-Siemens Amilo EL - Lubuntu 12.04 i686
Manjaro, une rolling pour débutants

Hors ligne

#15 Le 30/12/2011, à 20:14

Tuc DEUXLUS

Re : reboot et power off sans sudo

A oui  je pense avoir compris le truc

par exemple si je met :

BIBI)
                dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

à la place de

reboot)
                dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

je taperai BIBI pour redémarrer

Mais d'où tu sort la ligne entière ? d'où ça sort dbus-send etc...

Dernière modification par Tuc DEUXLUS (Le 30/12/2011, à 20:20)

Hors ligne

#16 Le 30/12/2011, à 21:55

loubrix

Re : reboot et power off sans sudo

bien sûr, dans le script, tu peux remplacer les arguments comme tu veux (et pense à les modifier aussi dans le message d'erreur à la fin).
la ligne de commande sort des différentes docs que j'ai lues sur D-bus; pour résumer, quand j'ai commencé sous Linux, y a 12 ans, D-bus n'existait pas, il fallait avoir les droits root pour beaucoup de choses (éteindre l'ordi, monter un stockage externe...), et c'était pas user-friendly du tout (par contre ça satisfaisait les geeks de l'époque); y a encore pas si longtemps que ça, lire le contenu d'une clé usb était une aventure (et écrire dessus j'en parle même pas).
donc D-bus résoud ce soucis; il y a un daemon système qui est à l'écoute en permanence, pour accepter (ou refuser) les requêtes des daemons utilisateurs; c'est un peu comme si tu envoyais un messages à Root pour lui demander d'éxécuter une commande que toi tu n'as pas le droit d'éxécuter, et Root, après avoir vérifié que ta requête est conforme à ce qu'il estime que tu as le droit de demander, le fait pour toi.
mais attention, le daemon D-bus system n'accepte pas n'importe quoi n'importe comment: la requête du client doit faire partie d'une liste de requêtes prédéfinies (on peut pas les inventer), et l'utilisateur doit être autorisé à lancer ces requêtes.
alors évidemment, tout ça est devenu bien complexe, surtout que D-bus interragit avec d'autres système, comme Policykit (qui règle les permissions de communication entre les différentes instances de D-Bus), Udisks (qui s'occupe des systèmes de fichiers), et la plupart des logiciels de ton système pour communiquer entre eux (quand une pop-up surgit pour te dire que tu as des nouveaux messages, c'est grâce à D-bus qui permet à Thunderbird de communiquer avec Gnome), mais ces systèmes sont indispensable pour que tout soit utilisable facilement.
pour résumer, D-bus est utilisé par plein de logiciel de ton système, pour t'en convaincre, lance "dbus-monitor" dans ton terminal, et vois par toi-même (et là tu ne verras que ce qui concerne ta session).
et dbus-send permet de passer des commandes à D-bus dans des scripts shell (mais pas seulement), et le seul moyen simple de trouver la commande qui fait ce que tu souhaites est bien souvent de la trouver toute faite dans un tuto sur D-bus, ou bien d'utiliser une interface graphique qui liste les commandes possibles

Une doc simple à comprendre mais complète

Dernière modification par loubrix (Le 30/12/2011, à 21:57)


Asus X50VL - Ubuntu 12.04 AMD64
HP G62 - Ubuntu 12.10 AMD64
Fujitsu-Siemens Amilo EL - Lubuntu 12.04 i686
Manjaro, une rolling pour débutants

Hors ligne

#17 Le 30/12/2011, à 22:34

AnsuzPeorth

Re : reboot et power off sans sudo

Tuc DEUXLUS a écrit :

A oui je veux bien apprendre a faire un script shell j'en ai jamais fais. ça peut être intéressant merci

Dsl pour ma reflexion alors, je pensais que tu voulais une commande pour un script bash, pas pour une utilisation console, d'où mon étonnement !

Sinon, il y a aussi org.gnome.SessionManager pour logout et org.gnome.DisplayManager pour switch entre users (sous gnome only !).

Pour débuter en bash, je propose tjrs ce lien
http://abs.traduc.org/abs-5.3-fr/index.html
Ca peut paraître indigeste, mais ca se lit bien.

Dernière modification par AnsuzPeorth (Le 30/12/2011, à 22:35)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne