Provided by: schroot_1.6.10-6_amd64 bug

BEZEICHNUNG

       schroot - eine Chroot-Umgebung sicher betreten

ÜBERSICHT

       schroot  [-h|--help  |  -V|--version  |  -l|--list  |  -i|--info | --config | --location |
       --automatic-session  |  -b|--begin-session  |  --recover-session  |   -r|--run-session   |
       -e|--end-session]    [-f|--force]    [-n   Sitzungsname|--session-name=Sitzungsname]   [-d
       Verzeichnis|--directory=Verzeichnis]             [-u             Benutzer|--user=Benutzer]
       [-p|--preserve-environment]  [-s  Shell|--shell=Shell]  [-q|--quiet  |  -v|--verbose]  [-c
       Chroot|--chroot=Chroot | [--all | --all-chroots | --all-source-chroots  |  --all-sessions]
       [--exclude-aliases]] [-o|--option=Schlüssel=Wert] [--] [BEFEHL [ ARG1 [ ARG2 [ ARGn]]]]

BESCHREIBUNG

       schroot   ermöglicht   dem   Benutzer   einen   Befehl  oder  eine  Login-Shell  in  einer
       Chroot-Umgebung auszuführen. Falls kein Befehl angegeben wurde, wird eine  Login-Shell  im
       aktuellen Arbeitsverzeichnis des Benutzers innerhalb der Chroot gestartet.

       Der Befehl ist ein Programm plus so viele optionale Argumente wie benötigt. Jedes Argument
       kann separat in Anführungszeichen gesetzt werden.

       Das Verzeichnis, in dem der Befehl oder die Login-Shell ausgeführt wird, hängt vom Kontext
       ab. Eine vollständige Beschreibung finden Sie nachfolgend unter der Option --directory.

       Jede  Chroot-Benutzung wird in den Systemprotokollen vermerkt. In einigen Situationen kann
       es nötig sein, dass sich der Benutzer selbst authentifizieren muss;  lesen  Sie  dazu  den
       nachfolgenden Abschnitt »Authentifizierung«.

       Falls  keine  Chroot  angegeben  wurde,  wird  als Ausweichmöglichkeit der Name oder Alias
       »default« benutzt. Dies ist gleichbedeutend mit »--chroot=default«.

ÜBERBLICK

       Es ist öfters nötig, Programme in einer virtualisierten Umgebung auszuführen,  als  direkt
       auf   dem   Wirtsystem.  Anders  als  andere  Virtualisierungssysteme  wie  kvm  oder  Xen
       virtualisiert Schroot nicht das ganze System; es virtualisiert  nur  das  Dateisystem  und
       einige  Teile des Dateisystems können immer noch mit dem Wirt gemeinsam benutzt werden. Es
       ist daher schnell, leichtgewichtig und flexibel. Es  virtualisiert  jedoch  keine  anderen
       Aspekte  des  Systems  wie  gemeinsam genutzten Speicher, Netzwerk, Geräte etc. und könnte
       daher, abhängig von der geplanten Verwendung, weniger  sicher  sein  als  andere  Systeme.
       Einige Beispiele existierender Verwendungen von Schroot beinhalten:

       ·      Ausführung  eines  nicht  vertrauenswürdigen Programms in einer Sandbox, so dass es
              keine Dateien auf dem Wirtsystem beeinträchtigt. Dies kann außerdem benutzt werden,
              um den Schaden zu begrenzen, den ein kompromittierter Dienst dem Wirt zufügen kann.

       ·      Benutzung  einer  definierten  und sauberen Umgebung, um die Reproduzierbarkeit und
              Integrität einer gegebenen Aufgabe zu garantieren

       ·      Verwendung   unterschiedlicher   Versionen   eines   Betriebssystems   oder   sogar
              unterschiedlicher       Betriebssysteme      zusammen,      z.B.      verschiedener
              GNU/Linux-Distributionen

       ·      Ausführen   von   32-Bit-Programmen   mittels   einer   32-Bit-Chroot   auf   einem
              64-Bit-Wirtsystem

       ·      Automatisches  Bauen von Debian-Paketen mittels sbuild(1), das jedes Paket in einem
              unberührten  Chroot-Schnappschuss  baut,  wenn   LVM-Schnappschüsse   oder   Unions
              verwendet werden.

       ·      Unterstützung mehrerer System-Images in einer Cluster-Einrichtung, wobei das Ändern
              des Basis-Images  zeitintensiv  ist  und/oder  all  die  von  Benutzern  benötigten
              Konfigurationen  zu unterstützen schwierig ist: Verschiedene Chroots können all die
              verschiedenen benötigten Konfigurationen unterstützen und  Benutzern  des  Clusters
              kann  Zugriff auf die von ihnen benötigten Chroots gegeben werden (was Root-Zugriff
              für vertrauenswürdige Benutzer zum Verwalten ihrer eigenen Images beinhalten kann).

       Eine Chroot kann durch Ausführen von chroot(8) direkt  durch  Root  benutzt  werden,  aber
       normale  Anwender  können  diesen  Befehl  nicht  verwenden. schroot gibt mit dem gleichen
       Mechanismus normalen  Benutzern  Zugriff  auf  Chroots,  aber  mit  mehreren  zusätzlichen
       Funktionen.  Obwohl  Schroot  genau  wie  chroot(8)  ein  Verzeichnis  als Chroot benutzt,
       erfordert es nicht, das es sich dabei um ein normales Verzeichnis im Dateisystem  handelt.
       Obwohl  dies  vorgegeben  ist,  kann  die Chroot ebenso aus einer Datei, einem Dateisystem
       einschließlich LVM- und  Btrfs-Schnappschüsse  sowie  Loopback-Mounts  bestehen  oder  aus
       UnionFS-Einblendungen  zusammengestellt sein. Da es vom Benutzer erweiterbar ist, wird der
       Gültigkeitsbereich für das Erstellen von Chroots aus verschiedenen Quellen nur durch  Ihre
       Fantasie  begrenzt.  Schroot  führt  Rechteprüfungen  durch und ermöglicht zusätzlich eine
       automatisierte  Einrichtung  der   Chroot-Umgebung,   wie   das   Einhängen   zusätzlicher
       Dateisysteme  oder  anderer  Konfigurationsaufgaben. Diese automatisierte Einrichtung wird
       durch die Aktion von Einrichtungsskripten erledigt, die  zum  Durchführen  der  benötigten
       Aktionen angepasst und erweitert werden können. Typische Aktionen beinhalten das Einhängen
       des  Home-Verzeichnisses  des  Benutzers,  das  Einrichten  des  Netzwerkzugangs  und  von
       Systemdatenbanken  und  sogar  das Starten von Diensten. Diese können wiederum vollständig
       durch den Admin angepasst werden.  Die  Einrichtungsskripte  werden  für  alle  Typen  von
       Chroots  ausgeführt  mit  Ausnahme  des Typs »plain«, des einfachsten Chroot-Typs, der gar
       keine automatisierten Einrichtungsfunktionen bietet.  Die  Einrichtung  von  Chroots  wird
       ausführlicher in schroot.conf(5) behandelt.

OPTIONEN

       schroot akzeptiert die folgenden Optionen:

   Aktionen
       -h, --help
              zeigt eine Zusammenfassung der Hilfe.

       -V, --version
              gibt Versionsinformationen aus.

       -l, --list
              führt alle verfügbaren Chroots auf.

       -i, --info
              gibt detaillierte Informationen über die angegebenen Chroots aus.

       --config
              gibt  die  Konfiguration  der  angegebenen  Chroots  aus.  Dies ist nützlich, um zu
              prüfen, ob die gerade  benutzte  Konfiguration  die  selbe  ist,  wie  die  in  der
              Konfigurationsdatei. Jegliche Kommentare der Originaldatei werden fehlen.

       --location
              gibt  dem  Speicherort  (Pfad)  der  angegebenen  Chroots  aus.  Beachten Sie, dass
              Chroot-Typen, die  nur  innerhalb  einer  Sitzung  benutzt  werden  können,  keinen
              Speicherort haben werden, bis sie aktiv sind.

   Allgemeine Optionen
       -q, --quiet
              gibt nur wichtige Nachrichten aus.

       -v, --verbose
              gibt alle Nachrichten aus

   Chroot-Auswahl
       -c, --chroot=Chroot
              gibt eine Chroot oder aktive Sitzung an, die benutzt werden soll. Diese Option kann
              zur Angabe mehrerer Chroots mehrfach angegeben werden.  In  diesem  Fall  sind  die
              Auswirkungen  ähnlich  --all.  Dem  Chroot-Namen  kann ein Namensraum vorangestellt
              werden; siehe den nachfolgenden Abschnitt »Chroot-Namensräume«.

       -a, --all
              wählt alle Chroots, Source-Chroots und  aktiven  Sitzungen  aus.  Wenn  ein  Befehl
              angegeben  wurde,  wird  der  Befehl  in  allen Chroots, Source-Chroots und aktiven
              Sitzungen ausgeführt. Falls --info benutzt wurde, werden  Informationen  über  alle
              Chroots angezeigt. Diese Option ist bei Verwendung einer Login-Shell nicht sinnvoll
              (wird ausgeführt, falls kein  Befehl  angegeben  wurde).  Diese  Option  entspricht
              »--all-chroots --all-source-chroots --all-sessions«.

       --all-chroots
              wählt  alle Chroots aus; identisch mit --all, außer, dass Source-Chroots und aktive
              Sitzungen nicht berücksichtigt werden.

       --all-sessions
              wählt alle aktiven Sitzungen aus; identisch mit  --all,  außer,  dass  Chroots  und
              Source-Chroots nicht berücksichtigt werden.

       --all-source-chroots
              wählt  alle  Source-Chroots  aus;  identisch  mit  --all,  außer,  dass Chroots und
              Sitzungen nicht berücksichtigt werden.

       --exclude-aliases
              wählt keine Aliase zusätzlich zu Chroots aus. Dies stellt sicher,  dass  nur  echte
              Chroots ausgewählt sind und nur einmal aufgeführt werden.

   Chroot-Umgebung
       -d, --directory=Verzeichnis
              wechselt  nach  Verzeichnis  innerhalb  der  Chroot,  bevor  der  Befehl  oder  die
              Login-Shell ausgeführt wird. Falls Verzeichnis nicht verfügbar  ist,  wird  Schroot
              mit einem Fehlerstatus beendet.

              Das  Standardverhalten  ist  wie  folgt (alle Verzeichnispfade liegen innerhalb der
              Chroot): Eine Login-Shell wird im aktuellen  Arbeitsverzeichnis  ausgeführt.  Falls
              dies   nicht   verfügbar  ist,  wird  es  der  Reihe  nach  $HOME  probieren  (wenn
              --preserve-environment benutzt wird), dann das Home-Verzeichnis des  Benutzers  und
              dann  /  innerhalb  der  Chroot. Falls keines der Verzeichnisse verfügbar ist, wird
              Schroot mit einem Fehlerstatus beendet.

       -u, --user=Benutzer
              wird als anderer Benutzer ausgeführt. Standardmäßig wird es als aktueller  Benutzer
              ausgeführt.  Falls benötigt, kann vom Benutzer verlangt werden, dass er sich selbst
              mit  einem  Passwort  authentifiziert.  Weitere   Informationen   finden   Sie   im
              nachfolgenden Abschnitt »Authentifizierung«.

       -p, --preserve-environment
              bewahrt die Umgebung des Benutzers innerhalb der Chroot-Umgebung auf. Standardmäßig
              wird eine saubere Umgebung benutzt. Diese Option kopiert die ganze Benutzerumgebung
              und  setzt  sie  in  der  Sitzung. Die erlaubten Umgebungsvariablen sind Gegenstand
              mehrerer Einschränkungen. Siehe den nachfolgenden Abschnitt »Umgebung«.

       -s, --shell=Shell
              benutzt Shell als  Login-Shell.  Wenn  eine  Login-Shell  ausgeführt  wird,  werden
              mehrere  mögliche  Shells  in  dieser Reihenfolge berücksichtigt: der Befehl in der
              Umgebungsvariable   SHELL   (falls   --preserve-environment   benutzt   wird   oder
              preserve-environment  aktiviert  ist,  die  Shell  des  Benutzers  in der Datenbank
              »passwd«, /bin/bash und am Ende /bin/sh. Diese Option setzt diese Liste außer Kraft
              und   wird  die  angegebene  Shell  verwenden.  Diese  Option  setzt  außerdem  den
              Konfigurationsschlüssel shell außer Kraft, falls gesetzt.

       -o, --option=Schlüssel=Wert
              setzt eine Option. Der Wert ausgewählter Schlüssel  in  schroot.conf  kann  mittels
              dieser  Option  geändert  werden.  Der  Schlüssel  muss  im Konfigurationsschlüssel
              user-modifiable-keys in schroot.conf vorhanden sein oder zusätzlich  der  Schlüssel
              user-modifiable-keys,  falls  es  als  Root-Benutzer  ausgeführt  wird (oder darauf
              umgeschaltet wird). Der hier gesetzte Schlüssel und Wert wird in der  Umgebung  der
              Einrichtungsskripte  gesetzt  und  könnte  daher  benutzt werden, um die Chroot auf
              Sitzungsbasis anzupassen.

   Sitzungsaktionen
       --automatic-session
              startet eine Sitzung, führt sie aus und  beendet  sie  automatisch.  Dies  ist  die
              Standardaktion und muss daher nicht bei normalen Transaktionen angegeben werden.

       -b, --begin-session
              startet eine Sitzung. Ein eindeutiger Sitzungsbezeichner (Sitzungskennung) wird auf
              der Standardausgabe  zurückgegeben.  Die  Sitzungskennung  wird  zum  Benutzen  der
              anderen  Sitzungsoptionen  benötigt.  Beachten Sie, dass der Sitzungsbezeichner mit
              der Option --session-name angegeben werden kann.

       --recover-session
              stellt eine existierende Sitzung wieder her. Falls eine existierende Sitzung  nicht
              mehr  vorhanden  war,  zum  Beispiel  weil  sie  wegen  eines  Neustarts nicht mehr
              eingehängt war, wird diese  Option  die  Sitzung  wieder  zur  Benutzung  verfügbar
              machen,  beispielsweise  durch erneutes Einhängen. Die Sitzungskennung wird mit der
              Option --chroot angegeben.

       -r, --run-session
              führt eine existierende Sitzung  aus.  Die  Sitzungskennung  wird  mit  der  Option
              --chroot angegeben.

       -e, --end-session
              beendet eine existierende Sitzung. Die Sitzungskennung wird mit der Option --chroot
              angegeben.

   Sitzungsoptionen
       -n, --session-name=Sitzungsname
              benennt    eine    Sitzung.    Der    angegebene    Sitzungsname    ersetzt     den
              Standardsitzungsnamen,  der  eine automatisch erzeugte Sitzungskennung enthält. Der
              Sitzungsname darf keinen Namensraumbezeichner  enthalten,  da  Sitzungen  immer  im
              Namensraum »session:« erstellt werden. Der Sitzungsname ist außerdem Gegenstand der
              in schroot.conf(5) dokumentierten Chroot-Namensbeschränkungen.

       -f, --force
              erzwingt eine Sitzungstransaktion sogar dann,  wenn  sie  andernfalls  fehlschlagen
              würde.  Dies  kann  benutzt werden, um eine Sitzung gewaltsam zu beenden, auch wenn
              sie aktive Benutzer hat. Dies gewährleistet nicht, dass die  Sitzung  ordnungsgemäß
              beendet  wird.  Es  kann zum Beispiel vorkommen, dass Dateisysteme nicht ausgehängt
              werden.

   Trenner
       --     beendet die Optionen; wird benutzt, um das Ende  der  Schroot-Optionen  anzuzeigen.
              Alle  nachfolgenden  Optionen  werden  an  den ausgeführten Befehl statt an Schroot
              übergeben.

AUTHENTIFIZIERUNG

       Falls der Benutzer kein erlaubter Benutzer oder Mitglied der erlaubten Gruppen (oder  beim
       Wechsel  zu  Root,  kein erlaubter Root-Benutzer oder Mitglied der erlaubten Root-Gruppen)
       für die angegebene(n) Chroot(s) ist, wird die Erlaubnis sofort verweigert. Falls sich  der
       Benutzer ändert und der Benutzer, der den Befehl ausführt, Zugriff hat, ist es nötig, dass
       sich der Benutzer selbst mittels der Anmeldedaten des Benutzers authentifizieren muss,  zu
       dem gewechselt wird.

       Auf   Systemen,   die  anschließbare  Authentifizierungsmodule  (Pluggable  Authentication
       Modules, PAM) unterstützen, wird Schroot PAM zur Authentifizierung und  Autorisierung  von
       Benutzern  verwenden.  Falls  dies  der Fall ist, wird Schroot nach einem Passwort fragen,
       wenn  erforderlich.  Falls  PAM  nicht  verfügbar  ist,  wird  jegliche  Authentifizierung
       automatisch fehlschlagen (Benutzerwechsel ohne PAM wird nicht unterstützt).

       Beachten  Sie,  dass  dem  Benutzer  Root,  falls  PAM  benutzt  wird, standardmäßig keine
       Sonderrechte im Programm  gewährt  werden.  Die  Standard-PAM-Konfiguration  erlaubt  Root
       jedoch  die  Anmeldung  ohne Passwort (pam_rootok.so). Dies kann aber deaktiviert sein, um
       Root daran zu hindern auf alle Chroots zuzugreifen, es sei denn, dies ist eigens  erlaubt.
       In  einer  derartigen  Situation  muss  Root  zu  den  erlaubten  Benutzern  oder  Gruppen
       hinzugefügt werden, wie andere Benutzer und Gruppen. Falls PAM nicht verfügbar  ist,  wird
       es  dem  Benutzer  Root  erlaubt  sein,  auf  alle  Chroots zuzugreifen, sogar, wenn nicht
       explizit Zugriff gewährt wurde.

CHROOT-NAMENSRÄUME

   Namensraumgrundlagen
       Es  gibt  drei  unterschiedliche  Chroot-Typen:  normale   Chroots,   Source-Chroots   und
       Sitzungs-Chroots.  Diese  unterschiedlichen  Typen  von Chroots werden in unterschiedliche
       Namensräume aufgeteilt. Ein Namensraum ist ein Präfix eines Chroot-Namens. Derzeit gibt es
       drei  Namensräume: »chroot:«, »source:« und »session:«. Benutzen Sie --list --all, um alle
       verfügbaren Chroots in  allen  Namensräumen  aufzuführen.  Da  »:«  als  Trenner  zwischen
       Namensräumen  und  Chroot-Namen  benutzt  wird,  ist  es  nicht erlaubt, dieses Zeichen in
       Chroot-Namen zu verwenden.

       Abhängig davon, welche Aktion Sie von Schroot abfragen, kann es nach der Chroot  in  einem
       der  drei Namensräume nachsehen oder es könnte ein bestimmter Namensraum angegeben werden.
       Eine Chroot mit Namen  »sid«  heißt  zum  Beispiel  tatsächlich  »chroot:sid«,  falls  der
       Namensraum  enthalten  ist,  der Namensraum kann aber für die meisten Aktionen weggelassen
       werden.

   Source-Chroots
       Einige Chroot-Typen, zum Beispiel LVM- und Btrfs-Schnappschüsse, stellen durch die Sitzung
       verwaltete  Copy-On-Write-Schnappschüsse  der  Chroot  bereit. Diese stellen außerdem eine
       Source-Chroot bereit, um einen einfachen Zugriff auf das Dateisystem zu  ermöglichen,  das
       als  Quelle für Schnappschüsse verwendet wird. Dies sind ebenso normale Chroots, bei denen
       nur die Schnappschüsse deaktiviert sind. Für eine Chroot mit  Namen  »sid-snapshot«  (d.h.
       mit  einem vollqualifizierten Namen »chroot:sid-snapshot«) wird es auch eine entsprechende
       Source-Chroot  mit  Namen  »source:sid-snapshot«  geben.  Frühere  Versionen  von  Schroot
       stellten  Source-Chroots  mit  einer  Endung  »-source«  zur  Verfügung.  Diese werden aus
       Kompatibilitätsgründen  ebenfalls   bereitgestellt.   In   diesem   Beispiel   wäre   dies
       »chroot:sid-snapshot-source«.  Diese  Kompatibilitätsnamen werden in zukünftigen Versionen
       fallengelassen, daher sollten Programme und Skripte zur Benutzung namensraumqualifizierter
       Namen wechseln, statt die alte Endung zu verwenden.

   Sitzungs-Chroots
       Alle  Sitzungen,  die mit --begin-session erzeugt wurden, werden innerhalb des Namensraums
       »session:« platziert. Ein Sitzungsname mit --session-name kann  irgendeinen  Namen  haben,
       sogar  den  selben Namen wie die Chroot, aus der er erstellt wurde, vorausgesetzt, dass er
       innerhalb dieses Namensraums eindeutig ist. Dies war in früheren  Versionen  von  Schroot,
       die keine Namensräume hatten, nicht erlaubt.

   Aktionen und Standardnamensräume
       Alle   Aktionen   mit   Ausnahme   einiger   Sitzungsaktionen   benutzen   »chroot:«   als
       Standardnamensraum.   --run-session,   --recover-session   und   --end-session   verwenden
       stattdessen  »session:«  als  Standardnamensraum,  da  diese Aktionen mit Sitzungs-Chroots
       arbeiten. Das Ergebnis ist, dass der Namensraum normalerweise nie benötigt  wird,  es  sei
       denn,  Sie  möchten  mit  einer  Chroot  in  einem anderen als dem vorgegebenen Namensraum
       arbeiten,  wie  etwa  wenn  eine  Source-Chroot  benutzt  wird.  Um   die   Chroot-Auswahl
       unmissverständlich zu machen, ist es immer möglich, den vollständigen Namen einschließlich
       des Namensraums zu verwenden, sogar wenn dies nicht strikt erforderlich ist.

LEISTUNG

       Auf einigen  Dateisystemen,  zum  Beispiel  Btrfs,  ist  die  Leistung  wegen  der  vielen
       durchgeführten  Fsync-Transaktionen  schlecht,  wenn Dpkg ausgeführt wird. Dies kann durch
       die Installation des Pakets »eatmydata« und anschließendem Hinzufügen von »eatmydata«  zum
       Konfigurationsschlüssel   command-prefix,   der   alle   Fsync-Transaktionen  deaktiviert,
       gemildert werden. Beachten sie, dass dies in Schnappschuss-Chroots getan werden sollte, in
       denen  Datenverlust  kein  Problem  darstellt.  Dies  ist  nützlich,  wenn eine Chroot zum
       Beispiel zum Bauen von Paketen benutzt wird.

RESERVEVERZEICHNISSE

       Schroot wird ein geeignetes Verzeichnis auswählen, das innerhalb der Chroot benutzt werden
       soll,  abhängig davon, ob eine interaktive Login-Shell benutzt werden soll, welcher Befehl
       ausgeführt oder ob zusätzlich die Option --directory verwendet wird. Im Fall, dass Befehle
       direkt   ausgeführt  werden  oder  explizit  ein  Verzeichnis  angegeben  wird,  wird  aus
       Sicherheits-  und  Konsistenzgründen  nur  ein  Verzeichnis  benutzt,  während  für   eine
       Login-Shell mehrere Möglichkeiten ausprobiert werden können. Die folgenden Unterabschnitte
       führen die Reserveabfolge für jeden Fall auf. CWD ist das aktuelle Arbeitsverzeichnis, DIR
       ist das mit --directory angegebene Verzeichnis.

   Login-Shell
       ┌────────────────────┬──────────────────────────────────────────┐
       │Übergang            │                                          │
       │(Rechner → Chroot)  │ Kommentar                                │
       ├────────────────────┼──────────────────────────────────────────┤
       │CWD → CWD           │ normales  Verhalten  (falls  --directory │
       │                    │ nicht benutzt wird)                      │
       │CWD → $HOME         │ falls   CWD    nicht    existiert    und │
       │                    │ --preserve-environment benutzt wird      │
       │CWD → passwd pw_dir │ falls    CWD   nicht   existiert   (oder │
       │                    │ --preserve-environment benutzt wird  und │
       │                    │ $HOME nicht existiert)                   │
       │CWD → /             │ keins davon existiert                    │
       │FAIL                │ falls / nicht existiert                  │
       └────────────────────┴──────────────────────────────────────────┘
   Befehl
       ┌───────────────────┬──────────────────────────────────────────┐
       │Übergang           │                                          │
       │(Rechner → Chroot) │ Kommentar                                │
       ├───────────────────┼──────────────────────────────────────────┤
       │CWD → CWD          │ normales  Verhalten  (falls  --directory │
       │                   │ nicht benutzt wird)                      │
       │FAIL               │ falls CWD nicht existiert                │
       └───────────────────┴──────────────────────────────────────────┘
       Unter irgendwelchen Umständen kann es vorkommen, dass keine Reserve existiert.

   --directory benutzt
       ┌───────────────────┬──────────────────────────────────────────┐
       │Übergang           │                                          │
       │(Rechner → Chroot) │ Kommentar                                │
       ├───────────────────┼──────────────────────────────────────────┤
       │CWD → VERZ         │ normales Verhalten                       │
       │FAIL               │ falls VERZ nicht existiert               │
       └───────────────────┴──────────────────────────────────────────┘
       Unter irgendwelchen Umständen kann es vorkommen, dass keine Reserve existiert.

   Fehlersuche
       Beachten Sie, dass --debug=Mitteilung die interne  Reserveliste  anzeigen  wird,  die  für
       diese Sitzung berechnet wurde.

BEISPIELE

   Aufführen verschiedener Chroots
       % schroot -l↵
       chroot:default
       chroot:etch
       chroot:sid
       chroot:testing
       chroot:unstable

   Informationen über die Chroot abfragen
       % schroot -i -c sid↵
         ——— Chroot ———
         Name                   sid
         Beschreibung           Debian sid (unstable)
         Typ                    plain
         Priorität              3
         Benutzer               rleigh
         Gruppen                sbuild
         Root-Benutzer
         Root-Gruppen           sbuild
         Alias-Kennungen        unstable unstable-sbuild unstable-powerpc-sbuild
         Umgebungsfilter        ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|IFS|KRB5_CONFIG|
                                KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMAIN|
                                NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|
                                TERMINFO_DIRS|TERMPATH)$
         Einr.-Skripte ausf. true
         Skript-Konfiguration   script-defaults
         Verwaltete Sitzung     true
         Persönlichkeit         linux32
         Ort                    /srv/chroot/sid

       Verwenden Sie --all beziehungsweise mehrfach -c, um alle oder mehrere Chroots zu benutzen.

   Befehle in einer Chroot ausführen
       % schroot -c sid /bin/ls↵
       [sid chroot] Befehl »/bin/ls« gestartet
       CVS          sbuild-chroot.c   sbuild-session.h  schroot.conf.5
       Makefile     sbuild-chroot.h   schroot.1         schroot.conf.5.in
       Makefile.am  sbuild-config.c   schroot.1.in
       Makefile.in  sbuild-config.h   schroot.c
       pam          sbuild-session.c  schroot.conf
       % schroot -c sid -- ls -1 | head -n 5↵
       [sid chroot] Befehl »ls -1« gestartet
       ABOUT-NLS
       AUTHORS
       COPYING
       ChangeLog
       INSTALL

       benutzt --, um zu ermöglichen, dass Optionen, die im Befehl mit »-« oder »--« beginnen, in
       der Chroot ausgeführt werden. Dies verhindert, dass sie als Optionen  für  Schroot  selbst
       interpretiert werden. Beachten Sie, dass die obere Zeile auf die Standardfehlerausgabe und
       die übrigen Zeilen auf die Standardausgabe ausgegeben werden. Dies  ist  beabsichtigt,  so
       dass  Programmausgaben  von  in  der  Chroot  ausgeführten Befehlen weiter- und umgeleitet
       werden können, wenn nötig. Die Daten werden die selben sein, wie bei  der  Ausführung  des
       Befehls direkt auf dem Wirtsystem.

   Benutzer wechseln
       % schroot -c sid -u root↵
       Passwort:
       [sid chroot] (rleigh→root) Login-Shell »/bin/bash«
       gestartet:
       #

       Falls  der  Benutzer »rleigh« in root-users in /etc/schroot/schroot.conf war oder zu einer
       der  Gruppen  in  root-groups  gehörte,  würde  ihm   Root-Zugriff   gewährt,   aber   der
       PAM-Autorisierungsschritt wird immer noch angewandt.

   Sitzungen
       Es  könnte  nötig  sein,  dass  eine  Chroot  mehr  als  einen  Befehl  ausführt. Dies ist
       hauptsächlich dann nötig, wenn die Chroot direkt von einem LVM-LV oder einer Datei auf der
       Platte  erstellt  wurde,  um  sie  während  eine  Aufgabe  (oder  ein  Satz  von Aufgaben)
       durchgeführt wird, beständig zu machen. Zu diesem Zweck existieren Sitzungen. Für einfache
       Chroot-Typen wie »plain« und »directory« können Sitzungen erstellt werden, sind aber nicht
       zwingend nötig.

       Lassen Sie uns starten, indem wir uns eine sitzungsfähige Chroot ansehen:

       % schroot -i -c sid-snap↵
         ——— Chroot ———
         Name                   sid-snap
         Beschreibung           Debian sid snapshot
         Typ                    lvm-snapshot
         Priorität              3
         Benutzer               maks rleigh
         Gruppen                sbuild
         Root-Benutzer
         Root-Gruppen           sbuild
         Aliase-Kennungen
         Umgebungsfilter        ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|IFS|KRB5_CONFIG|
                                KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMAIN|
                                NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|
                                TERMINFO_DIRS|TERMPATH)$
         Einr.-Skripte ausf. true
         Skript-Konfiguration   script-defaults
         Verwaltete Sitzung     true
         Persönlichkeit         linux
         Gerät                  /dev/hda_vg/sid_chroot
         Einbindungsoptionen    -o atime,async,user_xattr
         Quellbenutzer
         Quellgruppen           root rleigh
         Quell-Root-Benutzer
         Quell-Root-Gruppen     root rleigh
         LVM-Schnappschuss-Opt. --size 2G -c 128

       Beachten Sie, dass die Option Verwaltete Sitzung auf »true« gesetzt  ist.  Dies  ist  eine
       Voraussetzung, um die Sitzungsverwaltung zu benutzen und wird von den meisten Chroot-Typen
       unterstützt. Als nächstes werden wir eine neue Sitzung erstellen:

       % schroot -b -c sid-snap↵
       sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

       Die Sitzungskennung der neu erstellten Sitzung wird auf der Standardausgabe zurückgegeben.
       Es ist üblich, sie wie hier gezeigt zu speichern:

       % SESSION=$(schroot -b -c sid-snap)↵
       % echo $SESSION↵
       sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f

       Die Sitzung kann genauso wie jede normale Chroot benutzt werden. Die Sitzung sieht etwa so
       aus:

       % schroot -i -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
         ——— Session ———
         Name                   sid-snap-46195b04-0893-49bf-beb8-0d\
       4ccc899f0f
         Beschreibung           Debian sid snapshot
         Typ                    lvm-snapshot
         Priorität              3
         Benutzer               maks rleigh
         Gruppen                sbuild
         Root Users
         Root-Gruppen           root sbuild
         Alias-Kennungen
         Umgebungsfilter        ^(BASH_ENV|CDPATH|ENV|HOSTALIASES|IFS|KRB5_CONFIG|
                                KRBCONFDIR|KRBTKFILE|KRB_CONF|LD_.*|LOCALDOMAIN|
                                NLSPATH|PATH_LOCALE|RES_OPTIONS|TERMINFO|
                                TERMINFO_DIRS|TERMPATH)$
         Einr.-Skripte ausf. true
         Skript-Konfiguration   script-defaults
         Verwaltete Sitzung     true
         Persönlichkeit         linux
         Einbindungsort         /var/lib/schroot/mount/sid-snap-461\
       95b04-0893-49bf-beb8-0d4ccc899f0f
         Pfad                   /var/lib/schroot/mount/sid-snap-461\
       95b04-0893-49bf-beb8-0d4ccc899f0f
         Einzubindendes Gerät   /dev/hda_vg/sid-snap-46195b04-0893-\
       49bf-beb8-0d4ccc899f0f
         Gerät                  /dev/hda_vg/sid_chroot
         Einbindungsoptionen    -o atime,async,user_xattr
         Quellbenutzer
         Quellgruppen           root rleigh
         Quell-Root-Benutzer
         Quell-Root-Gruppen     root rleigh
         LVM-Schnappsch.-Gerät  /dev/hda_vg/sid-snap-46195b04-0893-\
       49bf-beb8-0d4ccc899f0f
         LVM-Schnappschuss-Opt. --size 2G -c 128

       Nun wurde die Sitzung erstellt, Befehle können darin ausgeführt werden:

       % schroot -r -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f -- \
         uname -sr↵
       I: [sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f chroot] Befehl \
       »uname -sr« gestartet
       Linux 2.6.18-3-powerpc
       % schroot -r -c $SESSION -- uname -sr↵
       I: [sid-snap-fe170af9-d9be-4800-b1bd-de275858b938 chroot] Befehl \
       »uname -sr« gestartet
       Linux 2.6.18-3-powerpc

       Wenn alle Befehle, die in der Sitzung ausgeführt werden sollen, durchgeführt wurden,  kann
       die Sitzung beendet werden:

       % schroot -e -c sid-snap-46195b04-0893-49bf-beb8-0d4ccc899f0f↵
       % schroot -e -c $SESSION↵

       Letztendlich können Sitzungsnamen lang und unhandlich sein. Statt die automatisch erzeugte
       Sitzungskennung zu benutzen, kann ein Name angegeben werden.

       % schroot -b -c sid-snap -n mein-Sitzungsname↵
       mein-Sitzungsname

FEHLERBEHEBUNG

       Falls etwas nicht funktioniert und aus den Fehlermeldungen nicht  hervorgeht,  was  falsch
       ist, versuchen Sie die Option --debug=Stufe zu benutzen, um Debug-Meldungen einzuschalten.
       Dies gibt eine große Menge weiterer Informationen. Gültige Debug-Stufen  sind  »none«  und
       »notice«, »info«, »warning« und »critical« nach zunehmender Schwere geordnet. Je niedriger
       der Schweregrad desto mehr wird ausgegeben.

       Falls Sie immer noch Schwierigkeiten haben, können die  Entwickler  auf  der  Mailingliste
       kontaktiert werden:
       Debian-Buildd-Tools-Entwickler
       <buildd-tools-devel@lists.alioth.debian.org>

FEHLER

       Auf den Architekturen mips und mipsel haben Linux-Kernel bis einschließlich Version 2.6.17
       kaputte personality(2)-Unterstützung, die dazu führt, dass das Setzen  der  Persönlichkeit
       fehlschlägt.  Dies  wird  als  ein  »Transaktion nicht erlaubt«-Fehler (EPERM) gesehen. Um
       dieses Problem zu umgehen setzen Sie personality  auf  »undefined«  oder  führen  Sie  ein
       Upgrade auf einen aktuelleren Kernel durch.

UMGEBUNGSVARIABLEN

       Standardmäßig   werden   die  Umgebungsvariablen  nicht  aufbewahrt.  Die  folgenden  sind
       definiert: HOME, LOGNAME, PATH, SHELL, TERM  (aufbewahrt,  falls  bereits  definiert)  und
       USER. Die Umgebungsvariablen SCHROOT_COMMAND, SCHROOT_USER, SCHROOT_GROUP, SCHROOT_UID und
       SCHROOT_GID, die innerhalb der Chroot gesetzt sind, geben  den  ausgeführten  Befehl,  den
       Benutzernamen,  den  Gruppennamen,  die  Benutzer-  beziehungsweise die Gruppenkennung an.
       Zusätzlich  geben  die  Umgebungsvariablen  SCHROOT_SESSION_ID,  SCHROOT_CHROOT_NAME   und
       SCHROOT_ALIAS_NAME  die  Sitzungskennung,  den Original-Chroot-Namen vor dem Erstellen der
       Sitzung  beziehungsweise  den  Alias,  mit  dem  die   ursprünglich   ausgewählte   Chroot
       identifiziert wird, an.

       Die  folgenden  möglicherweise gefährlichen Umgebungsvariablen sind aus Sicherheitsgründen
       entfernt: BASH_ENV, CDPATH, ENV, HOSTALIASES,  IFS,  KRB5_CONFIG,  KRBCONFDIR,  KRBTKFILE,
       KRB_CONF,  LD_.*,  LOCALDOMAIN, NLSPATH, PATH_LOCALE, RES_OPTIONS, TERMINFO, TERMINFO_DIRS
       und TERMPATH. Falls gewünscht, wird  der  Konfigurationsschlüssel  environment-filter  das
       Ändern   der   Auschlussliste   ermöglichen.   Weitere   Einzelheiten   finden  Sie  unter
       schroot.conf(5).

DATEIEN

   Konfigurationsdateien
       /etc/schroot/schroot.conf
              die systemweite Chroot-Definitionsdatei. Diese Datei muss dem Benutzer Root gehören
              und darf nicht durch andere beschreibbar sein.

       /etc/schroot/chroot.d
              Zusätzliche  Chroot-Definitionen  können in Dateien unterhalb dieses Verzeichnisses
              abgelegt   werden.   Sie   werden    auf    exakt    die    gleiche    Weise    wie
              /etc/schroot/schroot.conf   behandelt.   Jede   Datei   kann   eine   oder  mehrere
              Chroot-Definitionen enthalten. Beachten Sie, dass die Dateien in diesem Verzeichnis
              die   gleichen   Namensregeln  wie  run-parts(8)  befolgen,  wenn  mit  der  Option
              --lsbsysinit gestartet wird.

       /etc/schroot/setup.d
              die    systemweiten    Verzeichnisse    für    Chroot-Einrichtungsskripte.    Siehe
              schroot-setup(5).

       /etc/pam.d/schroot
              PAM-Konfiguration

   Systemverzeichnisse
       /usr/lib/x86_64-linux-gnu/schroot
              Verzeichnis, das von Einrichtungsskripten benutzte Hilfsprogramme enthält

   Sitzungsverzeichnisse
       Jedes Verzeichnis enthält ein Verzeichnis oder eine Datei mit dem Namen von jeder Sitzung.
       Nicht alle Chroot-Typen benutzen alle folgenden Verzeichnisse.

       /var/lib/schroot/session
              Verzeichnis, das die Sitzungskonfiguration für jede aktive Sitzung enthält

       /var/run/schroot/mount
              Verzeichnis, das zum Einhängen der durch jede aktive Sitzung benutzten Dateisysteme
              verwendet wird

       /var/lib/schroot/union/underlay
              Verzeichnis, das für vereinte (darunterliegende) Dateisystemquellen benutzt wird

       /var/lib/schroot/union/overlay
              Verzeichnis, das für vereinte beschreibbare Dateisystemeinblendungen benutzt wird

       /var/lib/schroot/unpack
              Verzeichnis, das zum Entpacken von Datei-Chroots benutzt wird

AUTOR

       Roger Leigh

COPYRIGHT

       Copyright © 2005-2012 Roger Leigh <rleigh@debian.org>

       schroot  ist  freie  Software.  Sie können es unter den Bedingungen der GNU General Public
       License, wie  von  der  Free  Software  Foundation  veröffentlicht,  weitergeben  und/oder
       modifizieren,  entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option) jeder späteren
       Version.

SIEHE AUCH

       dchroot(1),  sbuild(1),  chroot(2),  schroot.conf(5).  schroot-setup(5),   schroot-faq(7),
       run-parts(8),