Μερικοί διαχειριστές συστημάτων κατηγοριοποιούν τα jails σε δύο ενότητες: τα «complete (πλήρη)» jails, τα οποία μιμούνται ένα πραγματικό σύστημα FreeBSD, και τα «service» jails, τα οποία χρησιμοποιούνται για μια εφαρμογή ή υπηρεσία, που πιθανόν εκτελείται με ειδικά προνόμια. Αυτός είναι ένας νοητικός διαχωρισμός και δεν επιδρά στη διαδικασία δημιουργίας ενός jail. Η σελίδα manual του jail(8) περιέχει κατατοπιστικές πληροφορίες για τη διαδικασία δημιουργίας ενός jail:
# setenv D /here/is/the/jail # mkdir -p $D # cd /usr/src # make buildworld # make installworld DESTDIR=$D # make distribution DESTDIR=$D # mount -t devfs devfs $D/dev
Από την στιγμή που έχει εγκατασταθεί ένα jail, μπορεί να εκκινηθεί με τη χρήση της
εντολής jail(8). Η jail(8) δέχεται
τέσσερις υποχρεωτικές παραμέτρους οι οποίες περιγράφονται στο Τμήμα 16.3.1. Μπορείτε να δώσετε και άλλες
παραμέτρους, π.χ., για να εκτελέσετε μια διεργασία στο περιβάλλον του jail με τις άδειες
ενός συγκεκριμένου χρήστη. Η παράμετρος command
εξαρτάται από τον τύπο του jail. Για ένα
εικονικό σύστημα, το /etc/rc είναι μια καλή επιλογή, μια και στην ουσία θα κλωνοποιήσει
την διαδικασία εκκίνησης ενός πραγματικού συστήματος FreeBSD. Για ένα service jail, η παράμετρος εξαρτάται από
την υπηρεσία ή την εφαρμογή που θα τρέχει μέσα στο jail.
Τα jails συνήθως ξεκινούν κατά την εκκίνηση και ο μηχανισμός rc του FreeBSD παρέχει έναν εύκολο τρόπο για να γίνει κάτι τέτοιο.
Η λίστα με τα jails που θέλετε να ξεκινάνε κατά την εκκίνηση θα πρέπει να προστεθούν στο αρχείο rc.conf(5):
jail_enable="YES" # Set to NO to disable starting of any jails jail_list="www" # Space separated list of names of jails
Σημείωση: Το όνομα που έχει κάθε jail στη λίστα
jail_list
επιτρέπεται να περιέχει μόνο αλφαριθμητικούς χαρακτήρες.
Για κάθε jail που υπάρχει στο jail_list
, θα πρέπει
να προστεθεί μια ομάδα από ρυθμίσεις στο rc.conf(5), οι
οποίες θα το περιγράφουν:
jail_www_rootdir="/usr/jail/www" # jail's root directory jail_www_hostname="www.example.org" # jail's hostname jail_www_ip="192.168.0.10" # jail's IP address jail_www_devfs_enable="YES" # mount devfs in the jail jail_www_devfs_ruleset="www_ruleset" # devfs ruleset to apply to jail
Η προεπιλεγμένη εκκίνηση του jail μέσω του rc.conf(5), θα
ξεκινήσει το script του jail /etc/rc, το οποίο υποθέτει
ότι το jail είναι ένα ολοκληρωμένο εικονικό σύστημα. Για service jails, η
προεπιλεγμένη εκκίνηση πρέπει να αλλάξει, ορίζοντας κατάλληλα την επιλογή jail_jailname_exec_start
.
Σημείωση: Για πλήρη λίστα των διαθέσιμων επιλογών, δείτε το rc.conf(5).
Το script /etc/rc.d/jail μπορεί να χρησιμοποιηθεί για να ξεκινήσει ή να σταματήσει κάποιο jail χειροκίνητα. Πρέπει όμως να υπάρχει η αντίστοιχη καταχώρηση στο rc.conf:
# /etc/rc.d/jail start www # /etc/rc.d/jail stop www
Για την ώρα δεν υπάρχει κάποιος απόλυτα σωστός τρόπος για να τερματίσετε κάποιο jail(8). Αυτό συμβαίνει, διότι οι εντολές που χρησιμοποιούνται συνήθως για να τερματίσουν με ασφάλεια ένα σύστημα, δεν μπορούν να χρησιμοποιηθούν μέσα στο περιβάλλον ενός jail. Ο καλύτερος τρόπος για να τερματίσετε ένα jail είναι με την εκτέλεση της ακόλουθης εντολής μέσα από το ίδιο το jail ή με χρήση του βοηθητικού προγράμματος jexec(8) έξω από αυτό:
# sh /etc/rc.shutdown
Περισσότερες πληροφορίες σχετικά με αυτή τη διαδικασία μπορείτε να βρείτε στη σελίδα βοηθείας του jail(8)
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.