bionic (1) schroot.1.gz

Provided by: schroot_1.6.10-4ubuntu0.1_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
       ┌────────────────────┬──────────────────────────────────────────┐
       │Transition          │                                          │
       │(Host → Chroot)     │ Comment                                  │
       ├────────────────────┼──────────────────────────────────────────┤
       │CWD → CWD           │ Normal behaviour (if --directory is  not │
       │                    │ used)                                    │
       │CWD → $HOME         │ If     CWD     is     nonexistent    and │
       │                    │ --preserve-environment is used           │
       │CWD → passwd pw_dir │ If    CWD     is     nonexistent     (or │
       │                    │ --preserve-environment  is  used  and no │
       │                    │ $HOME exists)                            │
       │CWD → /             │ None of the above exist                  │
       │FAIL                │ If / is nonexistent                      │
       └────────────────────┴──────────────────────────────────────────┘
   Befehl
       ┌────────────────┬──────────────────────────────────────────┐
       │Transition      │                                          │
       │(Host → Chroot) │ Comment                                  │
       ├────────────────┼──────────────────────────────────────────┤
       │CWD → CWD       │ Normal behaviour (if --directory is  not │
       │                │ used)                                    │
       │FAIL            │ If CWD is nonexistent                    │
       └────────────────┴──────────────────────────────────────────┘
       Unter irgendwelchen Umständen kann es vorkommen, dass keine Reserve existiert.

   --directory benutzt
       ┌────────────────┬──────────────────────────────────────────┐
       │Transition      │                                          │
       │(Host → Chroot) │ Comment                                  │
       ├────────────────┼──────────────────────────────────────────┤
       │CWD → DIR       │ Normal behaviour                         │
       │FAIL            │ If DIR is nonexistent                    │
       └────────────────┴──────────────────────────────────────────┘
       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 © 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)