Vorrei eseguire un comando di shell da php, in particolare uno di quelli che richiede l'immissione anche di una password.
Es.: exec("su", ...)
C'è un modo per farlo?
Grazie a tutti.
Vorrei eseguire un comando di shell da php, in particolare uno di quelli che richiede l'immissione anche di una password.
Es.: exec("su", ...)
C'è un modo per farlo?
Grazie a tutti.
se ho capito bene quello che devi fare mi spavento...![]()
a parte gli scherzi, se devi eseguire task di root attraverso il web server configura sudo in modo che l'utente apache abbia i diritti di eseguire quel particolare comando, in modo da non doverti autenticare (e ne guadagna la sicurezza comunque).
ciao
No, scusa, era solo un esempio...... però rende l'idea.
Per essere più preciso, vorrei poter far giungere al termine uno script tipo:
#!/usr/bin/php
<?
exec("ftp nomeserver.dominio.it");
....
?>
sostituendo ai "..." il codice che serve per mettere nome utente e password.
Spero di essere stato più chiaro, e meno "preoccupante".VVoVe:
per l'ftp esistono diverse soluzioni:
1. puoi usare le funzioni di ftp di php.
2. esistono gli script ftp, a quel punto metti l'autenticazione all'interno dello script ftp.
Se non erro avevo postato tempo fa una soluzione del genere, non ricordo se su questo forum o su quello di linux, comunque puoi trovare facilmente queste info con google
ciao
Ok, grazie ancora a tutti.
Però il mio era un esempio.
La domanda è: esiste un modo per passare nome utente e password da php a un qualsiasi comando di shell che lo richieda?
Quello dell'ftp era un esempio che si risolve con gli script per ftp, a me servirebbe una soluzione generale che non ricorra a script particolari specifici per l'applicazione richiesta.
che io sappia no, anche perchè:
1. Come pratica non è il massimo
2. A cosa dovrebbe servire?
Scusa se insisto, ma finchè fai esempi teorici ti posso solo rispondere in maniera teorica.
![]()
Rispondo alla domanda nr. 2:
dovrebbe servire per poter interagire con un'applicazione attraverso una pagina web.
In particolare l'applicazione, una volta avviata, vuole nome utente e password.
Con riferimento all'osservazione nr. 1, capisco che non è pratico, ma non vedo altro modo per poterlo fareO no?
Non so come poterti fare un esempio pratico, se non con quelli già fatti.
Posso dirti che scrivo:
$ ./elabora.out input.dat
e viene fuori:
Login: <digito la mia user>
Pass: <digito la mia password>
Non riesco adessere più preciso di così.
N.B.: non esiste la possibilità di passare username e password sulla stessa riga di comando di elabora.out
Quindi la password è il programma che la richiede, indipendentemente dall'utente che lo lancia?Originariamente inviato da estiqaatsi
Rispondo alla domanda nr. 2:
dovrebbe servire per poter interagire con un'applicazione attraverso una pagina web.
In particolare l'applicazione, una volta avviata, vuole nome utente e password.
Con riferimento all'osservazione nr. 1, capisco che non è pratico, ma non vedo altro modo per poterlo fareO no?
Non so come poterti fare un esempio pratico, se non con quelli già fatti.
Posso dirti che scrivo:
$ ./elabora.out input.dat
e viene fuori:
Login: <digito la mia user>
Pass: <digito la mia password>
Non riesco adessere più preciso di così.
N.B.: non esiste la possibilità di passare username e password sulla stessa riga di comando di elabora.out
In tal caso non so se c'è la possibilità di fare quello che chiedi...
Forse l'unica via è far modificare elabora.out in modo che accetti nome utente e pass come parametri del comando, una cosa del tipo
elabora.out -u utente -p pass input.dat
Infatti è quello che vorrei fare, ma non è semplice perchè chi ha scritto il codice è irreperibile (e con lui anche il codice)
Vabbè, pazienza.
Grazie lo stesso per l'aiuto.
Alla prossima.
Normalmente ciò non è possibile; su Win c'è un software apposito dei Sysinternales.com.
Non so se/come/quando, ma potresti provare a far girare questo con Wine di modo che interagisca col tuo programma Linux.
E' solo un'idea non so nemmeno se possa funzionare.
Ma in mancanza d'altro...
![]()