Autore Topic: Eseguire comandi della shell di linux tramite php  (Letto 7513 volte)

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Eseguire comandi della shell di linux tramite php
« il: 29 Dicembre, 2011, 19:06:41 »
Qualche volta può tornare utile riuscire ad eseguire comandi della shell direttamente tramite uno script in php.
Ad esempio per visualizzare l'elenco dei files in una directory senza perdere troppo tempo, oppure cancellare un file o una directory senza usare l'ftp oppure per comprimere o decomprimere uno o più files etc etc

[ Guests cannot view attachments ]

Lo script, che chiameremo cmd.php, deve contenere almeno il seguente codice:
Codice:
Only registered users can see contents. Please click here to Register or Login.
Dovrebbe essere sufficientemente semplice da capire a meno della strana sintassi "2>&1" che si chiama "redirezione dello standard error sullo standard output" e serve per visualizzare anche i messaggi di errore che di solito verrebbero rediretti sul canale 2.

NB.
Si tratta di un ottimo tool con i suoi pregi ed i suoi difetti.

Pregi:
  • Permette di eseguire comandi direttamente come se si fosse in una finestra di terminale
Contro:
  • E' un enorme problema di sicurezza in quanto permette a chiunque sia a conoscenza della sua presenza, di eseguire comandi sui file del vostro sito, nonchè visualizzarne il contenuto  ;) come mostrato qui sotto in figura: [ Guests cannot view attachments ]
  • Non funziona su hosting aruba in quanto il comando è stato disattivato per problemi di sicurezza

Riporto, invece, un esempio in cui questo strumento è di estrema utilità.
Immaginiamo di dover installare, ad esempio, un joomla. Le operazioni da eseguire normalmente sono:
  • scaricare il tar dei sorgenti che è di circa 5/7 mb
  • scompattarlo in locale
  • trasferirlo in upload e sono diverse migliaia di files .... ci vuole un mare di tempo
  • eseguire lo script di installazione
Con questo metodo, invece, è possibile far eseguire tutte le operazioni direttamente sul server, download e scompattazione, per cui rimane da eseguire soltanto lo script di installazione.

Per effettuare il download direttamente sul server:

Codice:
Only registered users can see contents. Please click here to Register or Login.
come mostrato in figura:

[ Guests cannot view attachments ]

per poi scompattare direttamente sulla destinazione con il comando:

Codice:
Only registered users can see contents. Please click here to Register or Login.
come mostrato in figura:

[ Guests cannot view attachments ]

per poi procedere con l'installazione con il comando:

Codice:
Only registered users can see contents. Please click here to Register or Login.
seguendo il wizard consueto.

A questo punto dobbiamo ricordarci di rimuovere lo script cmd.php ed il gioco è fatto in pochissimi minuti .....

Cosa succede se non rimuoviamo lo script?

Vi faccio un esempio con il comando:

Codice:
Only registered users can see contents. Please click here to Register or Login.
[ Guests cannot view attachments ]

ho cancellato completamente TUTTO il contenuto della mia root, file e directory ..... cancellato tutto senza speranza di recupero.
« Ultima modifica: 11 Gennaio, 2012, 20:02:22 da serzio »