[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.
Rispondi
smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggio 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

Xfight
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: dom 19 ago 2007, 16:49
Slackware: 12.0

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

Messaggio 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

smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggio 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?

:?: :?:

Avatar utente
whites11
Linux 4.x
Linux 4.x
Messaggi: 1147
Iscritto il: ven 30 set 2005, 13:54
Località: Udine

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

Messaggio da whites11 »

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

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

smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggio 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

smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggio 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<

Avatar utente
whites11
Linux 4.x
Linux 4.x
Messaggi: 1147
Iscritto il: ven 30 set 2005, 13:54
Località: Udine

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

Messaggio 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?

smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggio 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..

Avatar utente
whites11
Linux 4.x
Linux 4.x
Messaggi: 1147
Iscritto il: ven 30 set 2005, 13:54
Località: Udine

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

Messaggio 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*

smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggio 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

Avatar utente
whites11
Linux 4.x
Linux 4.x
Messaggi: 1147
Iscritto il: ven 30 set 2005, 13:54
Località: Udine

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

Messaggio 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).

smtux
Linux 3.x
Linux 3.x
Messaggi: 977
Iscritto il: gio 1 set 2005, 0:00
Slackware: 12.0
Località: somewhere in the time

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

Messaggio da smtux »

in questi giorni non posso fare prove... comunque breve provo secondo il consiglio che mi hai dato e ti faccio sapere, grazie

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

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

Messaggio 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

Rispondi