Arresta Debian dallo script php


0

Sto cercando di spegnere il mio RaspberryPi che esegue Raspbian da uno script php in esecuzione su lighttpd webserver. shell_exec("sudo /sbin/shutdown -h now 2>&1");

Ho aggiunto lighttpd ALL=(ALL) NOPASSWD: /sbin/shutdown al mio file / etc / sudoers e controllato Defaults !requiretty è impostato.

Ricevo ancora "sudo: nessun presente tty e nessun programma askpass specificato" durante l'esecuzione dello script.

Qualcuno può aiutarmi? Grazie!


Penso che potresti volere il shell_exec funzione invece di exec dal momento che questo è un comando di shell (penso che sia così che funziona). Non sono sicuro al 100% (quindi il commento), ma potrebbe valere la pena provare.
nerdwaller

Redirezione dell'output ( 2>&1 ) richiede una shell; prova a rimuoverlo dal comando e vedere se ottieni un risultato diverso.
Aaron Miller

Grazie per i tuoi commenti In realtà ho già provato shell_exec in primo luogo. Ho appena copiato il comando sbagliato alla mia domanda. E exec ("sudo / sbin / shutdown -h now"); non funziona neanche.
frsc

Sei sicuro che lighttpd sia in esecuzione come utente lighttpd? In uno script php, echo `whoami`; Potrebbe essere invece www-data o http
WJDev

Risposte:


1

Lighttpd potrebbe non essere in esecuzione come utente lighttpd.

In uno script PHP, scrivi quanto segue per scoprire con quale utente viene eseguito:

echo shell_exec('whoami');

Può essere www-data o http anziché.


Grazie ElanMan per il tuo suggerimento. L'utente corretto era effettivamente www-data e non lighttpd come ho letto altrove. Ora funziona come previsto.
frsc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.