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

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