Alcuni amministratori dividono le jail nei seguenti due tipi: jail “complete”, che sono simili ad un sistema FreeBSD reale, e jail “di servizio”, dedicate ad un'unica applicazione o servizio, possibilmente in esecuzione con privilegi. Questa è solo una divisione concettuale ed il processo di creazione della jail non viene modificato da ciò. La pagina man jail(8) è abbastanza chiara a riguardo della procedura di creazione di una jail:
# setenv D /qui/c'e'/la/jail # mkdir -p $D # cd /usr/src # make world DESTDIR=$D # cd etc/ [1] # make distribution DESTDIR=$D # mount_devfs devfs $D/dev
Una volta che una jail è installata, può essere avviata usando l'utility
jail(8). L'utility jail(8) prende quattro
argomenti obbligatori che sono descritti nella Sezione 15.3.1. Possono essere specificati altri
argomenti, ad esempio, per eseguire il programma nella jail con le credenziali di un
utente specifico. L'argomento comando
dipende dal tipo di jail; per un sistema virtuale, /etc/rc è una buona scelta, dato che replicherà la
sequenza di avvio di un sistema FreeBSD reale. Per una jail di servizio, dipenderà dal servizio o dalla
applicazione che sarà eseguita all'interno della jail.
Le jail spesso sono avviate al momento di boot e il meccanismo rc di FreeBSD fornisce un modo semplice per farlo.
Una lista delle jail che sono abilitate al boot dovrebbe essere aggiunta al file rc.conf(5):
jail_enable="YES" # NO per disabilitare l'avvio delle jail jail_list="www" # Lista dei nomi delle jail separati da spazi
Per ogni jail elencata in jail_list
, dovrebbe essere
aggiunto un gruppo di impostazioni di rc.conf(5), che
descrive la jail:
jail_www_rootdir="/usr/jail/www" # directory root della jail jail_www_hostname="www.example.org" # nome-host della jail jail_www_ip="192.168.0.10" # indirizzo IP della jail jail_www_devfs_enable="YES" # dispositivi di mount devfs nella jail jail_www_devfs_ruleset="www_ruleset" # regole devfs da applicare alla jail
L'avvio di default delle jail configurate in rc.conf(5)
eseguirà lo script della jail in /etc/rc, che assume che
la jail sia un completo sistema virtuale. Per jail di servizio, il comando di default di
avvio della jail dovrebbe essere cambiato, impostando l'opzione jail_nomejail_exec_start
in
modo appropriato.
Nota: Per una lista completa delle opzioni disponibili, per favore consulta la pagina man rc.conf(5).
Lo script /etc/rc.d/jail può essere usato per avviare o fermare una jail a mano, se esiste una entry in rc.conf:
# /etc/rc.d/jail start www # /etc/rc.d/jail stop www
Un modo pulito per spegnere una jail(8) non è disponibile al momento. Questo perchè i comandi usati normalmente per fare uno shutdown pulito non possono essere usati all'interno della jail. Il modo migliore per spegnere una jail è eseguire il seguente comando all'interno della jail stessa o usando l'utility jexec(8) da fuori della jail:
# sh /etc/rc.shutdown
Maggiori informazioni al riguardo possono essere trovate nella pagina man jail(8).
[1] |
Questo step non è richiesto su FreeBSD 6.0 e successivi. |
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.