11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capitolo 33. Miscellanea<br />

sia ottenuto tale script da una fonte fidata o non lo si sia analizzato attentamente per essere sicuri che non<br />

faccia niente <strong>di</strong> dannoso.<br />

Diversi ricercatori dei Bell Labs, e <strong>di</strong> altri istituti, tra i quali M. Douglas McIlroy, Tom Duff e Fred<br />

Cohen, che hanno indagato le implicazioni dei virus negli script <strong>di</strong> shell, sono giunti alla conclusione che<br />

è fin troppo facile, anche per un principiante, uno “script kid<strong>di</strong>e”, scriverne uno. 3<br />

Questa è un’altra ragione ancora per imparare lo <strong>scripting</strong>. Essere in grado <strong>di</strong> visionare e capire gli script<br />

è un mezzo per proteggere il sistema da danni o dall’hacking.<br />

33.8.2. Celare il sorgente <strong>di</strong> uno script <strong>di</strong> shell<br />

Per fini <strong>di</strong> sicurezza, potrebbe essere necessario rendere uno script illeggibile. Dovrebbe esserci<br />

un’utility per creare un binario eseguibile ricavandolo dallo script. Questo è esattamente quello che fa<br />

shc - generic shell script compiler (http://www.datsi.fi.upm.es/~frosal/sources/) <strong>di</strong> Francisco Rosales.<br />

Sfortunatamente, stando ad un articolo dell’ottobre 2005 <strong>di</strong> Linux Journal<br />

(http://www.linuxjournal.com/article/8256), il binario può essere, almeno in certi casi, decifrato<br />

ricomponendo così il sorgente originale dello script. Rimane, comunque, un metodo utile per mantenere<br />

gli script al sicuro da tutti, anche se non dagli hacker più abili.<br />

33.9. Portabilità<br />

Questo libro tratta specificamente dello <strong>scripting</strong> <strong>di</strong> <strong>Bash</strong> su un sistema GNU/Linux. Non<strong>di</strong>meno, gli<br />

utilizzatori <strong>di</strong> sh e ksh vi troveranno molti utili argomenti.<br />

Attualmente, molte delle <strong>di</strong>verse shell e linguaggi <strong>di</strong> <strong>scripting</strong> tendono ad uniformarsi allo standard<br />

POSIX 1003.2. Invocare <strong>Bash</strong> con l’opzione --posix, o inserire nello script l’intestazione set -o posix,<br />

fa sì che <strong>Bash</strong> si conformi in maniera molto stretta a questo standard. Un’altra alternativa è usare nello<br />

script l’intestazione<br />

#!/bin/sh<br />

al posto <strong>di</strong><br />

#!/bin/bash<br />

Va notato che /bin/sh è un link a /bin/bash in Linux e in alcune altre versioni <strong>di</strong> UNIX, e che uno<br />

script così invocato <strong>di</strong>sabilita le funzionalità estese <strong>di</strong> <strong>Bash</strong>.<br />

La maggior parte degli script <strong>Bash</strong> funzionano senza alcuna mo<strong>di</strong>fica con ksh, e viceversa, perché Chet<br />

Ramey sta alacremente adattando per <strong>Bash</strong>, nelle sue più recenti versioni, le funzionalità <strong>di</strong> ksh.<br />

585

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!