#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
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
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 )
Si un paquet ou autre solution est trouvée je prend aussi
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
@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
@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
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