mkosi-sandbox(1)

BEZEICHNUNG
mkosi-sandbox – Befehle in einer angepassten Sandbox ausführen

ÜBERSICHT
mkosi-sandbox [Optionen…] Befehl [Argumente]

BESCHREIBUNG
mkosi-sandbox führt den angegebenen Befehl in einer angepassten Sandbox aus. Diese Sandbox wird durch die Angabe von Befehlszeilenoptionen für bestimmte Teile der Sandbox konfiguriert.

Falls kein Befehl angegeben ist, wird mkosi-sandbox bash(1) in der Sandbox starten.

Beachten Sie, dass diese Sandbox nicht als Sicherheitsgrenze entwickelt wurde. Sie ist zur Ausführung von Befehlen in einer isolierten Umgebung gedacht, so dass diese nicht vom Wirtsystem beeinflusst werden.

Es ist möglich, mkosi-sandbox für eine Prozess-interne Sandbox für python(1)-Anwendung zu verwenden, indem es als Modul importiert wird und seine Hauptfunktion nur mit Optionen aufgerufen wird. Es wird für die Ausführung in diesem Fall keine Befehlszeile benötigt. Beispiel:

        import mkosi.sandbox
        mkosi.sandbox.main(["--become-root"])
        print(os.getuid())

Es kann nur die Funktion main aufgerufen werden. Der Aufruf aller anderen Funktionen aus mkosi.sandbox wird nicht unterstützt und könnte in zukünftigen Versionen zu Fehlern führen.

OPTIONEN

--tmpfs ZIEL
    Hängt ein neues Tmpfs unter ZIEL in der Sandbox ein.

--dev ZIEL
    Richtet ein privates /dev unter ZIEL in der Sandbox ein. Dieses private /dev wird nur die grundlegenden Geräteknoten beinhalten, die für eine funktionierende Sandbox notwendig sind (z.B. /dev/null) und keine tatsächlichen Geräte.

--proc ZIEL
    Hängt /proc des Wirtsystems unter ZIEL in der Sandbox ein.

--dir ZIEL
    Erstellt ein Verzeichnis und alle übergeordneten Verzeichnisse unter ZIEL in der Sandbox. Alle Verzeichnisse werden mit Modus 755 erstellt, außer der Pfad endet auf /tmp oder /var/tmp, dann wird es mit Modus 1777 erstellt.

--bind QUELLE ZIEL
    Der Quellpfad QUELLE wird rekursiv unter ZIEL in der Sandbox bind-eingehängt. Der Einhängepunkt wird in der Sandbox erstellt, falls er nicht existiert. Es werden auch alle fehlenden Überverzeichnisse in der Sandbox erstellt. Dem Quellpfad kann optional ein Zeichen + vorangestellt werden. In diesem Fall wird der Quellpfad relativ zum Sandbox-Wurzelverzeichnis anstatt zum Wurzelverzeichnis des Wirtsystems betrachtet.

--bind-try QUELLE ZIEL
    Ähnlich wie --bind, schlägt aber nicht fehl, wenn der Quellpfad nicht existiert.

--ro-bind QUELLE ZIEL
    Wie --bind, führt aber eine schreibgeschützte rekursive Bind-Einhängung durch.

--ro-bind-try QUELLE ZIEL
    Wie --bind-try, führt aber eine schreibgeschützte rekursive Bind-Einhängung durch.

--symlink QUELLE ZIEL
    Erstellt einen Symlink unter ZIEL in der Sandbox, der auf QUELLE zeigt. Falls ZIEL bereits existiert und eine Datei oder ein Symlink ist, wird ein temporärer Symlink erstellt und auf ZIEL eingehängt.

--write DATEN ZIEL
    Schreibt die Zeichenkette aus DATEN an ZIEL in der Sandbox.

--overlay-lowerdir VERZ
    Fügt VERZ vom Wirt als neues unteres Verzeichnis für die nächste Overlayfs-Einhängung hinzu.

--overlay-upperdir VERZ
    Setzt das obere Verzeichnis für die nächste Overlayfs-Einhängung auf VERZ vom Wirt. Falls auf tmpfs gesetzt, werden das obere und das Arbeitsverzeichnis Unterverzeichnisse der frischen Tmpfs-Einhängung sein.

--overlay-workdir VERZ
    Setzt das Arbeitsverzeichnis für die nächste Overlayfs-Einhängung auf VERZ von dem Wirt.

--overlay ZIEL
    Hängt ein neues Overlay-Dateisystem unter ZIEL in die Sandbox ein. Die unteren Verzeichnisse, das obere und das Arbeitsverzeichnis werden mittels der Optionen --overlay-lowerdir, --overlay-upperdir bzw. --overlay-workdir festgelegt. Nachdem jede Option --overlay ausgewertet wurde, werden die anderen Overlay-Optionen zurückgesetzt.

--unsetenv NAME
    Entfernt eine in der Sandbox gesetzte Umgebungsvariable NAME.

--setenv NAME WERT
    Setzt in der Sandbox die Umgebungsvariable NAME auf WERT.

--chdir VERZ
    Ändert das Arbeitsverzeichnis in der Sandbox auf VERZ.

--same-dir
    Ändert das Arbeitsverzeichnis in der Sandbox auf das aktuelle Arbeitsverzeichnis, in dem mkosi-sandbox auf dem Wirt aufgerufen wurde.

--become-root
    Bildet den aktuellen Benutzer auf den Benutzer »root« in der Sandbox ab. Falls diese Option nicht angegeben ist, wird der aktuelle Benutzer in der Sandbox auf sich selbst abgebildet. Unabhängig von der Angabe dieser Option wird der aktuelle Benutzer einen vollständigen Satz an Umgebungs-Capabilitys in der Sandbox haben. Dazu gehört CAP_SYS_ADMIN, was bedeutet, dass der aufgerufene Prozess in der Sandbox in der Lage sein wird, Bind-Einhängungen und andere Aktionen durchzuführen.

    Falls mkosi-sandbox als Benutzer root aufgerufen wird, macht diese Option nichts.

--suppress-chown
    Durch Angabe dieser Option werden alle Aufrufe von chown() oder ähnliche Systemaufrufe in der Sandbox wirkungslos. Dies ist hauptsächlich für den Aufruf von Paketverwaltern in der Sandbox nützlich, da diese versuchen könnten, Dateien mittels chown() auf andere Benutzer oder Gruppen zu ändern und dies fehlschlagen könnte, wenn mkosi-sandbox nicht als privilegierter Benutzer aufgerufen wird.

--suppress-sync
    Durch Angabe dieser Option werden alle Aufrufe von sync(2) oder ähnliche Systemaufrufe in der Sandbox wirkungslos. Dies ist hauptsächlich für den Aufruf von Paketverwaltern in der Sandbox nützlich, da diese versuchen könnten, auf Dateien sync(2) beim Entpacken aufzurufen, was beim Bau von Abbildern unnötig ist und die Ausführungsdauer merklich verlängert.

--unshare-net
    Durch Angabe dieser Option trennt mkosi-sandbox wenn möglich einen Netzwerknamensraum ab.

--unshare-ipc
    Durch Angabe dieser Option trennt mkosi-sandbox wenn möglich einen IPC-Namensraum ab.

--suspend
    Führt dazu, dass sich der Prozess mkosi-sandbox selbst mit SIGSTOP suspendiert, bevor er execve(2) aufruft. Dies ist nützlich, damit auf die Beendigung sämtlicher Einrichtungslogik gewartet wird, bevor im übergeordneten Prozess, der mkosi-sandbox aufgerufen hat, durch Verwendung waitid(2) mit den Schaltern WNOWAIT UND WSTOPPED fortgefahren wird.

--pack-fds
    Packt geerbte Dateideskriptoren zusammen, beginnend bei Dateideskriptornummer 3 und setzt $LISTEN_FDS auf die Anzahl der gepackten Dateideskriptoren und $LISTEN_PID auf die aktuelle Prozess-PID.

--version
    Zeigt die Paketversion.

--help, -h
    Zeigt einen kurzen Hinweis zum Aufruf.

BEISPIELE
bash(1) im aktuellen Arbeitsverzeichnis mit seinem eigenen Netzwerknamensraum als aktuellen Benutzer starten:

        mkosi-sandbox --bind / / --same-dir --unshare-net

id(1) als der Benutzer root mit nur /usr vom Hauptsystem sowie den notwendigen Symlinks, um Befehle ausführen zu können, in der Sandbox ausführen:

        mkosi-sandbox \
            --ro-bind /usr /usr \
            --symlink usr/bin /bin \
            --symlink usr/lib /lib \
            --symlink usr/lib64 /lib64 \
            --symlink usr/sbin /sbin \
            --dev /dev \
            --proc /proc \
            --tmpfs /tmp \
            --become-root \
            id

SIEHE AUCH
mkosi(1)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.