[Shutdown] éteindre RasPi par le web

Architecture ARM, archlinuxarm, raspberrypi ...
patrice
newbie
Messages : 4
Inscription : sam. 07 oct. 2017, 20:34

[Shutdown] éteindre RasPi par le web

Message par patrice »

Bonjour,
je cherche à éteindre mon Raspi (équipé d'une archlinux piratebox) par le web.

J'ai essayé ceci mais rien n'y fait :

Code : Tout sélectionner

sudo EDITOR=/usr/bin/nano visudo
   # Ajouter cette ligne à la fin du fichier :
   www-data ALL = NOPASSWD: /sbin/shutdown
sudo nano /opt/piratebox/www/content/halt.html
   # avec le contenu minimal suivant :
   <html><a href="shutdown.php">Shutdown NOW</a></html>
sudo nano /opt/piratebox/www/content/shutdown.php
   # avec lecontenu minimal suivant :
   <?php system('sudo /sbin/shutdown -h now'); ?>
Lorsque je me connecte au WiFi de ma Piratebox et que je lance le fichier halt.html rien ne se passe (en tout cas la box reste allumée).

Si quelqu'un à ne serait-ce qu'un axe de recherche je suis évidement preneur :) (cela me permettra en outre de compléter mon tutoriel : https://patrice-hardouin.canoprof.fr/el ... otechnobox

cordialement,
Patrice
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17180
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Shutdown] éteindre RasPi par le web

Message par benjarobin »

Bonjour,
Je ne sais pas comment est lancé PHP chez toi, mais c'est fort possible qu'il ne soit pas le bon groupe, serveur apache avec module php, ou nginx avec service fcgi, ou autre ?
Sinon shutdown est ici /usr/bin/shutdown et non /sbin/shutdown, je ne sais pas si cela à une importance pour sudo
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
patrice
newbie
Messages : 4
Inscription : sam. 07 oct. 2017, 20:34

Re: [Shutdown] éteindre RasPi par le web

Message par patrice »

Bonjour,

merci pour ta réponse @benjarobin

J'ai corrigé en cela :

Code : Tout sélectionner

sudo EDITOR=/usr/bin/nano visudo
   # Ajouter cette ligne à la fin du fichier :
   www-data ALL = NOPASSWD: /usr/bin/shutdown
sudo nano /opt/piratebox/www/content/halt.html
   # avec le contenu minimal suivant :
   <html><a href="shutdown.php">Shutdown NOW</a></html>
sudo nano /opt/piratebox/www/content/shutdown.php
   # avec lecontenu minimal suivant :
   <?php system('sudo /usr/bin/shutdown -h now'); ?>
Mais malheureusement cela ne semble pas suffire (j'avais aussi shutdown dans /sbin/).

Concernant php c'est géré par lighttpd (dans la arch-linux packagée pour la piratebox) et j'ai dé-commenté la ligne suivante :

Code : Tout sélectionner

sudo nano /opt/piratebox/conf/lighttpd/lighttpd.conf

include "/opt/piratebox/conf/lighttpd/fastcgi-php.conf"
@benjarobin : qu'est-ce que tu entends par «groupe» pour le lancement de php ?

cordialement,
Patrice
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17180
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Shutdown] éteindre RasPi par le web

Message par benjarobin »

Quel est l'utilisateur et le groupe exécutant PHP ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
patrice
newbie
Messages : 4
Inscription : sam. 07 oct. 2017, 20:34

Re: [Shutdown] éteindre RasPi par le web

Message par patrice »

Bonjour,

j'ai les utilisateurs suivants d'installés par défaut :

Code : Tout sélectionner

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/bin/nologin
daemon:x:2:2:daemon:/:/usr/bin/nologin
mail:x:8:12:mail:/var/spool/mail:/usr/bin/nologin
ftp:x:14:11:ftp:/srv/ftp:/usr/bin/nologin
http:x:33:33:http:/srv/http:/usr/bin/nologin
uuidd:x:68:68:uuidd:/:/usr/bin/nologin
dbus:x:81:81:dbus:/:/usr/bin/nologin
nobody:x:99:99:nobody:/:/usr/bin/nologin
systemd-journal-gateway:x:191:191:systemd-journal-gateway:/:/usr/bin/nologin
systemd-timesync:x:192:192:systemd-timesync:/:/usr/bin/nologin
systemd-network:x:193:193:systemd-network:/:/usr/bin/nologin
systemd-bus-proxy:x:194:194:systemd-bus-proxy:/:/usr/bin/nologin
systemd-resolve:x:195:195:systemd-resolve:/:/usr/bin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/sbin/nologin
systemd-journal-upload:x:998:998:systemd Journal Upload:/:/sbin/nologin
systemd-journal-remote:x:997:997:systemd Journal Remote:/:/sbin/nologin
alarm:x:1000:1000::/home/alarm:/bin/bash
avahi:x:84:84:avahi:/:/bin/nologin
dnsmasq:x:996:996:dnsmasq daemon:/:/sbin/nologin
minidlna:x:995:995:minidlna server:/var/cache/minidlna:/sbin/nologin

et les groupes suivants :

Code : Tout sélectionner

cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin
adm:x:4:root,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:root,alarm
ftp:x:11:
mail:x:12:
uucp:x:14:
log:x:19:root
utmp:x:20:
locate:x:21:
rfkill:x:24:
smmsp:x:25:
proc:x:26:
http:x:33:
games:x:50:
lock:x:54:
uuidd:x:68:
dbus:x:81:
network:x:90:
video:x:91:
audio:x:92:
optical:x:93:
floppy:x:94:
storage:x:95:
scanner:x:96:
input:x:97:
power:x:98:
nobody:x:99:
users:x:100:
systemd-journal:x:190:
systemd-journal-gateway:x:191:
systemd-timesync:x:192:
systemd-network:x:193:
systemd-bus-proxy:x:194:
systemd-resolve:x:195:
systemd-coredump:x:999:
systemd-journal-upload:x:998:
systemd-journal-remote:x:997:
alarm:x:1000:
avahi:x:84:
dnsmasq:x:996:
minidlna:x:995:
sudo:x:1001:alarm
nogroup:x:1002:nobody,minidlna
Lorsque je me connecte c'est en alarm@alarmpi. Il y a de fortes chances que l'utilisateur et le groupe se connectant à PHP soient «alarm».
Néanmoins, lorsque je saisi un «sudo» je dois saisir le mot de passe de l'utilisateur «alarm».

Sinon, dans le fichier de conf de lighttpd j'ai les lignes suivantes :

Code : Tout sélectionner

 server.username             = "nobody"
 server.groupname            = "nogroup"
@benjarobin Est-ce que mes réponses permettent de connaître l'utilisateur et le groupe exécutant PHP ?

C'est vrai que je nage franchement là, les personnalisations de l'arch de départ par piratebox ne me permettent pas de me retrouver facilement dans la documentation d'Arch-Linux :pleure:
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17180
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Shutdown] éteindre RasPi par le web

Message par benjarobin »

Tu te complique 1000 fois trop la tache, il y a quand même plus simple, regarder avec top, htop, ou ps quel est l'utilisateur qui exécute php.
Fait une page avec un sleep, cela devrait être largement suffisant
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
patrice
newbie
Messages : 4
Inscription : sam. 07 oct. 2017, 20:34

Re: [Shutdown] éteindre RasPi par le web

Message par patrice »

avec top cela me signale un user «nobody» pour lighttpd et php-cgi

Tu crois que le problème vient de là ? Il faut que j'autorise nobody dans son visudo ?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17180
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Shutdown] éteindre RasPi par le web

Message par benjarobin »

Cela pourrait aider, dans l'état actuel des choses cela ne risque pas de fonctionner
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre