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 21. Shell con funzionalità limitate.<br />

Azioni <strong>di</strong>sabilitate in una shell ristretta<br />

L’esecuzione <strong>di</strong> uno script, o <strong>di</strong> una parte <strong>di</strong> uno script, in modalità ristretta impe<strong>di</strong>sce l’esecuzione<br />

<strong>di</strong> alcuni coman<strong>di</strong> normalmente <strong>di</strong>sponibili. Rappresenta una misura <strong>di</strong> sicurezza per limitare i<br />

privilegi dell’utilizzatore dello script e per minimizzare possibili danni causati dalla sua esecuzione.<br />

Usare cd per mo<strong>di</strong>ficare la <strong>di</strong>rectory <strong>di</strong> lavoro.<br />

Cambiare i valori delle variabili d’ambiente $PATH, $SHELL, $BASH_ENV, o $ENV.<br />

Leggere o mo<strong>di</strong>ficare $SHELLOPTS, le opzioni delle variabili d’ambiente <strong>di</strong> shell.<br />

Re<strong>di</strong>rigere l’output.<br />

Invocare coman<strong>di</strong> contenenti una o più /.<br />

Invocare exec per sostituire la shell con un processo <strong>di</strong>fferente.<br />

Diversi altri coman<strong>di</strong> che consentirebbero o un uso maldestro o tentativi per sovvertire lo script a<br />

finalità per le quali non era stato progettato.<br />

Uscire dalla modalità ristretta dall’interno dello script.<br />

Esempio 21-1. Eseguire uno script in modalità ristretta<br />

#!/bin/bash<br />

# Far iniziare lo script con "#!/bin/bash -r"<br />

#+ significa far eseguire l’intero script in modalità ristretta.<br />

echo<br />

echo "Cambio <strong>di</strong> <strong>di</strong>rectory."<br />

cd /usr/local<br />

echo "Ora ti trovi in ‘pwd‘"<br />

echo "Ritorno alla <strong>di</strong>rectory home."<br />

cd<br />

echo "Ora ti trovi in ‘pwd‘"<br />

echo<br />

# Quello fatto fin qui è normale, modalità non ristretta.<br />

set -r<br />

# set --restricted ha lo stesso significato.<br />

echo "==> Ora lo script è in modalità ristretta.

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

Saved successfully!

Ooh no, something went wrong!