Pagina 1 di 1

[php] avvio di bash script da pagina in php su server apache

Inviato: mar 25 mar 2008, 0:16
da smtux
salve,

riapro nella sezione giusta un post di qualche mese fa... visto che ho dei problemi e non riesco a risolverli.
Dunque vorrei avviare degli script in bash da una pagina in php. In pratica ho un server apache di mia proprietà,
mi sono fatto delle interfacce in php e cliccando su alcuni pulsanti vorrei richiamare degli script in bash che ho già fatto
e testato da riga di comando.

fatta questa premessa ed utilizzato il consiglio di alcuni di voi per quanto riguarda il SUID, utilizzo il seguente comando:

Codice: Seleziona tutto

shell_exec("./script.sh");
ma nulla la pagina si blocca e dopo un po' mi viene fuori un popup per salvare lo script php che incapsula il comando di cui sopra.

Vorrei aggiungere che se invece uso:

Codice: Seleziona tutto

echo shell_exec("echo \"Hello World!\"");
funziona tutto benone!
Come se nello script bash ci sia qcs di strano, è sicuramente uno script complesso ma non capisco la differenza a farlo partire da riga di comando piuttosto che da pagina php...

Devo modificare il safe mode del php.ini?

grazie in anticipo

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: mar 25 mar 2008, 7:43
da Xfight
Ti rimando sul sito di php dove c'è scritto

Note: This function is disabled in safe mode.

Link : questo

Quando hai qualsiasi dubbio su una funzione php, ti consiglio di vedere qui anche perchè molti utenti scrivono i propri spezzoni di codice per problemi particolari ed alcuni sono veramente utili !!

Ciau

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: mar 25 mar 2008, 8:41
da smtux
ciao,

grazie del link.

Ieri sera mi sono assicurato di non essere in safe mode. Infatti la prova con Hello World funzionava.

cosa potrebbe essere?
Ci sono dei limiti di complessità degli script bash che possono essere richiamati? Ad esempio comandi come awk, sed possono essere usati?

:?: :?:

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: mar 25 mar 2008, 14:46
da whites11
io uso il comando exec e mi funziona senza problemi...

http://it.php.net/manual/it/ref.exec.php

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: mer 26 mar 2008, 8:45
da smtux
whites11 ha scritto:io uso il comando exec e mi funziona senza problemi...

http://it.php.net/manual/it/ref.exec.php
grazie.
Avevo provato anche con exec:

Codice: Seleziona tutto

exec('cd cartellaDoveStaScriptBash');
exec('./scriptbash.sh');
ma niente la pagina php si blocca e non va avanti.
Ho provato anche a redirigere l'output su $output ma nulla...
uff! eppure non mi sembrava complicato... :x

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: mer 26 mar 2008, 19:12
da smtux
Domanda:
Non è che per caso la pagina si potrebbe bloccare perchè lo script richiede i privilegi di root?

Può bastare settare il SUID? Perchè continua a darmi problemi...
Avevo pensato a passrgli il comando sudo ma va ancora peggio forse in questo caso sbaglio la sintassi...
[-o<

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: mer 26 mar 2008, 20:57
da whites11
io eseguo con exec iptables suiddato (passatemi il termine) e funziona benissimo.
sei sicuro che lo script sia corretto e termini correttamente l'esecuzione?

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: mer 26 mar 2008, 21:06
da smtux
whites11 ha scritto:io eseguo con exec iptables suiddato (passatemi il termine) e funziona benissimo.
sei sicuro che lo script sia corretto e termini correttamente l'esecuzione?
si sono sicuro, infatti se lo lancio da console funziona bene.

Però ad esempio sul mio laptop alcuni script devono essere eseguiti con i privilegi di root.
esempio quello che mi controlla la penna bluetooth, se lo "suiddo" non va se invece lo eseguo come
root va benone.
Sicuramente sono problemi di permessi... o qcs del genere..

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: gio 27 mar 2008, 0:32
da whites11
mmm
prova ad eseguire lo script da utente apache ( o dall'utente che ti esegue il webserver) lo script con il bit suid impostato.
inoltre ti ricordo (giusto per scrupolo) che il proprietario dello script deve essere l'utente del quale vuoi assumere i permessi (nel tuo caso root).

ti riporto il risultato di ls -l del mio eseguibile iptables:

Codice: Seleziona tutto

ls -l `which iptables`
-rwsr-sr-x 1 root root 45132 2007-06-27 23:05 /usr/sbin/iptables*

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: gio 27 mar 2008, 8:45
da smtux
whites11 ha scritto:mmm
prova ad eseguire lo script da utente apache ( o dall'utente che ti esegue il webserver) lo script con il bit suid impostato.
inoltre ti ricordo (giusto per scrupolo) che il proprietario dello script deve essere l'utente del quale vuoi assumere i permessi (nel tuo caso root).

ti riporto il risultato di ls -l del mio eseguibile iptables:

Codice: Seleziona tutto

ls -l `which iptables`
-rwsr-sr-x 1 root root 45132 2007-06-27 23:05 /usr/sbin/iptables*
premetto che ammetto la mia ignoranza...
come faccio ad eseguire lo script da utente apache? o dall'utente che esegue il webserver?
Infatti questo server mostra un'interfaccia web verso l'esterno e non ha bisogno di autenticazioni...
mmmm... mi manca qcs..
grazie ancora

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: gio 27 mar 2008, 9:56
da whites11
innanzitutto devi avere accesso remoto (ssh) al server.
ti devi loggare come root.
esegui il comando

Codice: Seleziona tutto

su apache
sostituendo ad apache il nome utente corretto.
ed esegui lo script come avviene nel codice php (quindi dalla stessa directory e con gli stessi eventuali parametri).

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: sab 29 mar 2008, 9:07
da smtux
in questi giorni non posso fare prove... comunque breve provo secondo il consiglio che mi hai dato e ti faccio sapere, grazie

Re: [php] avvio di bash script da pagina in php su server apache

Inviato: sab 29 mar 2008, 10:44
da conraid
smtux ha scritto:in questi giorni non posso fare prove... comunque breve provo secondo il consiglio che mi hai dato e ti faccio sapere, grazie
Se puoi perché non posti anche lo script che ti da errore? Così possiamo provarlo.
E comunque concordo con chi ti ha detto di provare gli script da linea di comando con i permessi del webserver, altrimenti non capisci dove sta l'errore