Debian

So verwenden Sie chroot in Debian 10

So verwenden Sie chroot in Debian 10
In einer Testumgebung müssen wir oft bestimmte Anwendungen sandboxen, um zu verhindern, dass sie den Rest des Systems beschädigen oder ausspionieren. Es gibt verschiedene Tools zum Sandboxen eines Programms und zum Verhindern, dass es den Rest des Systems beeinflusst, wie VirtualBox, VMware, Xen, KVM usw. Für nur eine einzelne oder wenige Anwendungen scheint das Sandboxing eines gesamten Betriebssystems jedoch nicht praktikabel zu sein.

Für Linux-Betriebssysteme steht ein Tool namens chroot zur Verfügung, das eine einfachere und schnellere Sandboxing-Methode für eine Anwendung bietet. Mit chroot können Sie jede Anwendung installieren und testen, ohne den Rest des Systems zu beeinträchtigen.

Dieser Artikel erklärt, wie man chroot in Debian 10 Buster verwendet, zusammen mit einigen Beispielen. Zur Erklärung erstellen wir eine chroot-Umgebung für die Bash und einige der Befehle, wie die Befehle „ls“, „ip“ und „pwd“.

Was ist chroot?

Das chroot-Tool ist ein Befehl in Linux, der das Stammverzeichnis einer Anwendung in ein anderes Verzeichnis ändert. Prozesse, die in diesem neuen Stammverzeichnis ausgeführt werden, können nicht auf die Dateien außerhalb dieses Verzeichnisses zugreifen. Daher isoliert es den Betrieb von Anwendungen vom Rest des Systems.

Wie funktioniert chroot?

Chroot funktioniert, indem es die Anwendung und alle ihre ausführbaren Dateien und Abhängigkeiten in das alternative Stammverzeichnis kopiert. Anschließend wird die Anwendung von diesem alternativen Stammverzeichnis aus ausgeführt, wodurch die Anwendung es als das ursprüngliche Stammverzeichnis betrachtet. Das Root-Verzeichnis ist das oberste Verzeichnis in der Hierarchie, und keine Anwendung kann höher als dieses Verzeichnis gelangen. Auf diese Weise isoliert chroot die Anwendung vom Rest des Systems.

Anwendungsfälle

Syntax

Das Folgende ist die grundlegende Syntax für den chroot-Befehl:

$ chroot Befehl

Befolgen Sie die folgenden Schritte, um den chroot-Befehl in Debian zu verwenden, um eine chroot-Umgebung einzurichten.

1. Erstellen Sie ein alternatives Stammverzeichnis

Erstellen Sie zunächst ein alternatives Root-Verzeichnis, das für die chroot-Umgebung verwendet werden soll.

$ sudo mkdir ~/new_root

Der obige Befehl erstellt die new_root Verzeichnis unter dem Zuhause Verzeichnis, das als Root-Verzeichnis in der chroot-Umgebung verwendet wird.

2. Wichtige Verzeichnisse hinzufügen

Erstellen Sie die Verzeichnisse „bin“, „lib“ und „lib64“ unter dem ~/new_root Verzeichnis:

$ sudo mkdir -p ~/new_root/bin,lib,lib64

3. Programm-Binärdateien kopieren

Alles, was zum Ausführen einer Anwendung in der chroot-Umgebung erforderlich ist, muss sich im alternativen Stammverzeichnis befinden. In diesem Artikel erstellen wir eine Chroot-Umgebung für die Bash und einige Befehle, einschließlich der Befehle „ls“, „ip“ und „pwd“. Daher kopieren wir die Binärdateien aus dem /Behälter Verzeichnis zum alternativen ~/new_root/bin Verzeichnis. Um die Binärdateien der Befehle zu finden, verwenden Sie den Befehl what:

$ welche bash ls ip pwd

Kopieren Sie als nächstes die Binärdateien der Befehle in die ~/new_root/bin Verzeichnis.

$ sudo cp -v /bin/bash,ls,ip,pwd  ~/new_root/bin

4. Programmabhängigkeiten kopieren

Wir müssen auch herausfinden, welche Abhängigkeiten unser Programm benötigt. Zuerst müssen wir herausfinden, was diese Abhängigkeiten sind, und dann werden wir sie in die Datei kopieren ~/new_root/lib-Verzeichnis.

Abhängigkeiten für bash kopieren

Finden Sie zuerst die Abhängigkeiten für das Bash-Programm heraus:

$ ldd /bin/bash

Kopieren Sie dann diese Abhängigkeiten in die ~/new_root/lib Verzeichnis.

$ cp -v /lib/x86_64-linux-gnu/libtinfo.so.6,libdl.so.2,libc.so.6 ~/new_root/lib

Kopieren Sie die /lib64-Dateien in die ~/new_root/lib64 Verzeichnis.

$ cp -v /lib64/ld-linux-x86-64.so.2 ~/new_root/lib64

Abhängigkeiten für den Befehl ls kopieren

Finden Sie zunächst die Abhängigkeiten für den Befehl ls heraus:

$ldd /bin/ls

Kopieren Sie dann diese Abhängigkeiten in die ~/new_root/lib Verzeichnis.

$ sudo cp -v /lib/x86_64-linux-gnu/libselinux.so.1,libc.so.6,libpcre.so.3,
libdl.so.2,libpthread.so.0 /lib64/ld-linux-x86-64.so.2 ~/new_root/lib

Kopieren Sie die /lib64-Dateien in die to ~/new_root/lib64 Verzeichnis.

$ sudo cp -v /lib64/ld-linux-x86-64.so.2 ~/new_root/lib64

Abhängigkeiten für ip-Befehl kopieren

Finden Sie zunächst die Abhängigkeiten für den Befehl ip heraus:

$ ldd /bin/ip

Kopieren Sie dann diese Abhängigkeiten in die ~/new_root/lib Verzeichnis.

$ cp -v /lib/x86_64-linux
gnu/libselinux.so.1, Verleumdung.so.1,libmnl.so.0,libcap.so.2,libdl.so.2,libc.so.6,
libpcre.so.3,libz.so.1,libpthread.so.0 ~/new_root/lib

Kopieren Sie die /lib64-Dateien in die to ~/new_root/lib64 Verzeichnis.

$ sudo cp -v /lib64/ld-linux-x86-64.so.2 ~/new_root/lib64

Abhängigkeiten für den Befehl pwd kopieren

Finden Sie zunächst die Abhängigkeiten für den Befehl pwd heraus:

$ ldd /bin/pwd

Kopieren Sie dann diese Abhängigkeiten in die ~/new_root/lib Verzeichnis.

$ sudo cp -v /lib/x86_64-linux-gnu/libc.so.6  ~/new_root/lib

Kopieren Sie die /lib64-Dateien in die to ~/new_root/lib64 Verzeichnis.

$ sudo cp -v /lib64/ld-linux-x86-64.so.2 ~/new_root/lib64

Um alle Verzeichnisse im alternativen Stammverzeichnis anzuzeigen, verwenden Sie den folgenden Befehl:

$ ls -R

5. Wechseln Sie zu einem alternativen Stammverzeichnis

Jetzt sind wir endlich bereit, auf unsere neue chroot-Umgebung umzusteigen. Um das Root-Verzeichnis zu ändern, führen Sie den folgenden Befehl in der Shell mit Root-Rechten aus:

$ sudo chroot ~/new_root /bin/bash

Wo ~/new_root ist unser alternatives Stammverzeichnis und /bin/bash ist die Anwendung, mit der wir die chroot-Umgebung eingerichtet haben.

Nachdem Sie den obigen Befehl ausgeführt haben, sehen Sie, dass sich die Bash-Eingabeaufforderung geändert hat zu bash-x.ja was in unserem Fall ist Schlag-5.0 (wo 5.0 ist die Bash-Versionsnummer).

Hinweis: Möglicherweise tritt der folgende Fehler auf, nachdem Sie den chroot-Befehl ausgeführt haben, wie ich es getan habe:

Wenn dieser Fehler auftritt, überprüfen Sie, ob Sie alle Bibliotheken und ausführbaren Dateien des erforderlichen Programms zum neuen Stammverzeichnis hinzugefügt haben.

Nach dem Aufrufen der chroot-Umgebung können Sie nur auf die darin enthaltene Datei zugreifen file. Versuchen Sie, die Befehle auszuführen, die Sie für Ihre chroot-Umgebung eingerichtet haben, einschließlich einiger integrierter Befehle. Sie können die integrierten Befehle finden, indem Sie die Hilfe Befehl in der Shell.

Sie können sehen, dass wir die Befehle „ls“, „pw“ und „ip“ ausprobiert haben und alle erfolgreich waren. Wenn wir einen anderen Befehl als diese drei Befehle und die integrierten Befehle ausführen, schlägt der Befehl fehl, da wir ihn nicht für die chroot-Umgebung eingerichtet haben. Wie Sie im folgenden Screenshot sehen können, haben wir versucht, die Befehle „touch“, „ping“ und „clear“ auszuführen, und alle schlugen fehl.

6. chroot beenden

Um die chroot-Umgebung zu verlassen, verwenden Sie die Ausfahrt Befehl.

Fazit

In diesem Artikel haben Sie erfahren, was chroot ist und wie es unter Linux funktioniert. Dieser Artikel hat Ihnen Schritt für Schritt gezeigt, wie Sie chroot in Debian 10 Buster verwenden, um eine chroot-Umgebung für bash und andere Befehle zu erstellen. Jetzt sollten Sie mit dem chroot-Befehl vertraut sein, um das Stammverzeichnis eines Prozesses und seiner Unterprozesse zu ändern und sie vom Rest des Systems zu isolieren.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...