Einige Administratoren unterscheiden zwei verschiedene Jail-Arten: “Komplette” Jails, die ein echtes FreeBSD darstellen und Jails für einen bestimmten “Dienst”, die nur einer bestimmten Anwendung oder einem Dienst (der möglicherweise mit besonderen Privilegien laufen soll) gewidmet sind. Dies ist aber nur eine konzeptuelle Unterscheidung, die Einrichtung einer Jail bleibt davon gänzlich unberührt.
# setenv D /hier/ist/die/jail # mkdir -p $D # cd /usr/src # make buildworld # make installworld DESTDIR=$D # make distribution DESTDIR=$D # mount -t devfs devfs $D/dev
Ist eine Jail einmal erst erstellt, kann sie durch jail(8) gestartet
werden. jail(8) benötigt
zwingend mindestens vier Argumente, die im Abschnitt Abschnitt 16.3.1 des Handbuchs beschrieben sind.
Weitere Argumente sind möglich, um beispielsweise die Jail mit den Berechtigungen eines
bestimmten Benutzers laufen zu lassen. Das Argument command
hängt vom Typ der Jail ab; für ein virtuelles System ist /etc/rc eine gute Wahl, da dies dem Startvorgang eines echten
FreeBSD-Systems entspricht. Bei einer Service-Jail hängt dieses von der Art des Dienstes ab, der in
der Jail laufen soll.
Jails werden häufig mit dem Betriebssystem gestartet, da der rc-Mechanismus von FreeBSD dafür eine einfach zu realisierende Möglichkeit bietet.
Eine Liste der Jails, die mit dem Betriebssystem gestartet werden sollen, wird in die Datei rc.conf(5) geschrieben:
jail_enable="YES" # Set to NO to disable starting of any jails jail_list="www" # Space separated list of names of jails
Anmerkung: Die Namen der Jails in der
jail_list
sollten nur alphanumerische Zeichen enthalten.
Für jede Jail in der jail_list
sollten in rc.conf(5) einige
Einstellungen vorgenommen werden:
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
Beim Start einer in rc.conf(5)
konfigurierten Jail wird das /etc/rc-Skript der Jail (das
"annimmt", dass es sich in einem kompletten System befindet) aufgerufen. Für
Service-Jails sollten die Startskripte der Jail durch das Setzen der Option
jail_jailname_exec_start
entsprechend angepasst werden.
Anmerkung: Eine vollständige Liste der Optionen findet sich in der Manualpage zu rc.conf(5).
Das /etc/rc.d/jail-Skript kann zum manuellen Starten und Stoppen der Jail genutzt werden, wenn ein Eintrag in rc.conf angelegt wurde:
# /etc/rc.d/jail start www # /etc/rc.d/jail stop www
Es gibt momentan keinen sauberen Weg, eine jail(8) zu stoppen. Dies liegt daran, dass die Kommandos zum sauberen Herunterfahren eines Systems innerhalb einer Jail nicht ausgeführt werden können. Der beste Weg eine Jail zu beenden ist es daher, innerhalb der Jail den folgenden Befehl auszuführen (alternativ können Sie auch jexec(8) von außerhalb der Jail aufrufen):
# sh /etc/rc.shutdown
Weitere Informationen zu diesem Thema finden Sie in der Manualpage jail(8).
Zurück | Zum Anfang | Weiter |
Einführung | Nach oben | Feinabstimmung und Administration |
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.