Repository 32bit  Forum
Repository 64bit  Wiki

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

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

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

Messaggioda smtux » mar mar 25, 2008 0:16

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
smtux
Linux 2.6
Linux 2.6
 
Messaggi: 977
Iscritto il: mer ago 31, 2005 23:00
Località: somewhere in the time
Slackware: 12.0

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

Messaggioda Xfight » mar mar 25, 2008 7:43

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
Xfight
Linux 1.0
Linux 1.0
 
Messaggi: 32
Iscritto il: dom ago 19, 2007 15:49
Slackware: 12.0

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

Messaggioda smtux » mar mar 25, 2008 8:41

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?

:?: :?:
smtux
Linux 2.6
Linux 2.6
 
Messaggi: 977
Iscritto il: mer ago 31, 2005 23:00
Località: somewhere in the time
Slackware: 12.0

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

Messaggioda whites11 » mar mar 25, 2008 14:46

io uso il comando exec e mi funziona senza problemi...

http://it.php.net/manual/it/ref.exec.php
Avatar utente
whites11
Linux 3.x
Linux 3.x
 
Messaggi: 1147
Iscritto il: ven set 30, 2005 12:54
Località: Udine

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

Messaggioda smtux » mer mar 26, 2008 8:45

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
smtux
Linux 2.6
Linux 2.6
 
Messaggi: 977
Iscritto il: mer ago 31, 2005 23:00
Località: somewhere in the time
Slackware: 12.0

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

Messaggioda smtux » mer mar 26, 2008 19:12

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<
smtux
Linux 2.6
Linux 2.6
 
Messaggi: 977
Iscritto il: mer ago 31, 2005 23:00
Località: somewhere in the time
Slackware: 12.0

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

Messaggioda whites11 » mer mar 26, 2008 20:57

io eseguo con exec iptables suiddato (passatemi il termine) e funziona benissimo.
sei sicuro che lo script sia corretto e termini correttamente l'esecuzione?
Avatar utente
whites11
Linux 3.x
Linux 3.x
 
Messaggi: 1147
Iscritto il: ven set 30, 2005 12:54
Località: Udine

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

Messaggioda smtux » mer mar 26, 2008 21:06

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..
smtux
Linux 2.6
Linux 2.6
 
Messaggi: 977
Iscritto il: mer ago 31, 2005 23:00
Località: somewhere in the time
Slackware: 12.0

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

Messaggioda whites11 » gio mar 27, 2008 0:32

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*
Avatar utente
whites11
Linux 3.x
Linux 3.x
 
Messaggi: 1147
Iscritto il: ven set 30, 2005 12:54
Località: Udine

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

Messaggioda smtux » gio mar 27, 2008 8:45

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
smtux
Linux 2.6
Linux 2.6
 
Messaggi: 977
Iscritto il: mer ago 31, 2005 23:00
Località: somewhere in the time
Slackware: 12.0

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

Messaggioda whites11 » gio mar 27, 2008 9:56

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).
Avatar utente
whites11
Linux 3.x
Linux 3.x
 
Messaggi: 1147
Iscritto il: ven set 30, 2005 12:54
Località: Udine

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

Messaggioda smtux » sab mar 29, 2008 9:07

in questi giorni non posso fare prove... comunque breve provo secondo il consiglio che mi hai dato e ti faccio sapere, grazie
smtux
Linux 2.6
Linux 2.6
 
Messaggi: 977
Iscritto il: mer ago 31, 2005 23:00
Località: somewhere in the time
Slackware: 12.0

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

Messaggioda conraid » sab mar 29, 2008 10:44

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
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11994
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti