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>.