GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein praktischer Leitfaden für den Chroot-Befehl unter Linux

Manchmal müssen Sie möglicherweise einen Prozess von anderen Prozessen isolieren, die auf Ihrem System ausgeführt werden. Wir können dies mit dem chroot-Befehl unter Linux tun.

In diesem Tutorial zeigen wir Ihnen, was der Chroot-Befehl ist und wie Sie den Befehl verwenden können, um ein Chroot-Gefängnis zu erstellen und einen Benutzer oder eine Gruppe in einer isolierten Umgebung zu fangen.

Verstehen des Chroot-Befehls in Linux

Der Chroot-Befehl ist in Linux-Systemen unerlässlich. Es hilft Ihnen, das Stammverzeichnis für einen Prozess zusammen mit seinen untergeordneten Prozessen zu ändern. Wenn wir ein gefälschtes Root-Verzeichnis für einen Benutzer oder eine Gruppe erstellen, verliert es den Zugriff auf das wahre Root-Verzeichnis.

Daher ist der Benutzer oder die Gruppe jetzt vom Rest unseres Systems isoliert. Dies kann viele Verwendungen haben, wie z. B. die folgenden:

  • Erstellen Sie eine Testumgebung für Softwareentwicklung und -tests.
  • Initiieren Sie die Neuinstallation der Bootloader-Dateien auf Ihrem System
  • Führen Sie möglicherweise veraltete Software aus
  • Verbessern Sie die Sicherheit mit einem Ringfencing-Mechanismus

Der Chroot-Befehl erstellt im Wesentlichen eine virtuelle Umgebung. Seine Funktion ist ähnlich wie bei einer virtuellen Maschine, aber Sie müssen keine dedizierten Ressourcen für das Chroot-Gefängnis bereitstellen.

Die virtuelle Umgebung teilt den gesamten Kernel mit dem Hostsystem.

Syntax des Chroot-Befehls

Der Chroot-Befehl unter Linux hat die folgende Syntax.

chroot [-OPTION] [PATH FOR NEW ROOT] [PATH FOR SERVER]

Der einzige Parameter, der zum Ausführen eines Chroot-Befehls erforderlich ist, ist der Pfad für das neue Stammverzeichnis. Sie können jedoch die im Chroot-Befehl verfügbaren Optionen verwenden, um die gewünschten Ergebnisse zu erzielen.

Hier sind die Optionen, die Ihnen zur Verfügung stehen, wenn Sie den Chroot-Befehl unter Linux verwenden.

  • –userspec=USER[:GROUP] – Wird verwendet, um den Benutzer oder die Gruppe zu definieren, auf die wir den Chroot-Befehl anwenden möchten. Wir können die Gruppe oder den Benutzer, die wir verwenden möchten, anhand des Namens oder der ID angeben
  • –groups=G_List – Wird verwendet, um zusätzliche Gruppen anzugeben, die wir als G1, G2 … Gn verwenden möchten
  • – Hilfe – Zeigt Ihnen einen Hilfebildschirm und beendet
  • –Version – Zeigt die Versionsdaten an und beendet

Erstellen eines Chroot-Befehlsgefängnisses

Nachdem wir den Chroot-Befehl und seine Syntax verstanden haben, ist es an der Zeit, ihn zu verwenden. Um Ihnen zu zeigen, wie es geht, erstellen wir ein Chroot-Gefängnis.

Ein Chroot-Gefängnis ist eine virtuelle Umgebung, die erstellt wird, indem das Stammverzeichnis eines Benutzers oder einer Gruppe in ein neues Verzeichnis geändert wird. Dieses neue Verzeichnis dient als falsches Root-Verzeichnis für unser Chroot-Gefängnis.

Lassen Sie uns die Schritte durchgehen, die Sie ausführen müssen, um den Chroot-Befehl unter Linux zu verwenden, um ein Chroot-Gefängnis zu erstellen.

1. Erstellen Sie ein Verzeichnis

Zuerst werden wir mit dem Erstellen eines gefälschten Root-Verzeichnisses unter /home/chroot_jail mit dem Befehl mkdir beginnen.

mkdir $home/chroot_jail

Dadurch wird ein Verzeichnis an der angegebenen Adresse erstellt, das wir für unser Chroot-Gefängnis verwenden werden. Bevor wir den Chroot-Befehl jedoch seine Arbeit erledigen lassen, müssen wir die erforderlichen Dateien zu unserem neuen Verzeichnis hinzufügen.

2. Erforderliche Stammverzeichnisse hinzufügen

Wir beginnen mit der Erstellung von /bin, /lib und /lib64 in unserem Jail-Verzeichnis. Der Befehl zum Erstellen dieser Verzeichnisse ist unten angegeben.

mkdir -p $home/chroot_jail/{bin,lib,lib64}

Wie Sie sehen können, werden die Verzeichnisse, die wir in unserer virtuellen Umgebung erstellen, in geschweiften Klammern (‘{}’) angegeben.

Jetzt werden wir den cd-Befehl verwenden, um chroot_jail zu unserem neuen Root-Verzeichnis zu machen.

cd $home/chroot_jail

3. Verschieben Sie die zulässigen Befehlsbinärdateien

Wir erstellen für dieses Beispiel eine minimalistische Linux-Umgebung. Lassen Sie uns die Befehle bash, ls, rm und touch verwenden, um Teil der Funktionalität unserer virtuellen Umgebung zu sein.

Kopieren Sie die Binärdateien aus unserem Root-/bin-Verzeichnis in das /bin-Verzeichnis unseres chroot_jail. Dazu verwenden wir den Befehl cp mit dem Tag -v (verbose), damit wir sehen können, was gerade kopiert wird.

cp -v /bin/{bash,touch,ls,rm} $home/chroot_jail

Wie Sie sehen können, sind die Binärdateien, die wir kopieren möchten, in geschweiften Klammern aufgeführt. Die Dateien aus den angegebenen Binärdateien wurden nun in unser neues Chroot-Gefängnisverzeichnis kopiert.

4. Befehlsabhängigkeiten auflösen

Aber diese Binärdateien haben Abhängigkeiten. Die Abhängigkeiten für Bash finden Sie mit dem Befehl ldd.

ldd /bin/bash

Jetzt werden wir den Befehl cp verwenden, um die Verzeichnisse sorgfältig eines nach dem anderen in unser Chroot-Gefängnis zu kopieren. Wir sollten sicherstellen, dass alle Abhängigkeitsbibliotheken kopiert werden, sonst funktioniert unser Chroot-Gefängnis nicht richtig. Ersetzen Sie den Teil durch die durch Kommas getrennten Verzeichnisse.

cp -v {<List dependencies here>} $home/chroot_jail/lib64

Wir werden diese Schritte für alle Befehle wiederholen, die wir innerhalb des Chroot-Gefängnisses zulassen möchten. Suchen Sie die Abhängigkeitsbibliotheken und kopieren Sie sie in das Verzeichnis chroot_jail.

5. Wechseln zum neuen Root-Verzeichnis

Jetzt müssen wir nur noch das Root-Verzeichnis unseres Chroot-Gefängnisses in das neue gefälschte Verzeichnis ändern, das wir gerade erstellt haben.

Um das Verzeichnis zu ändern und anzugeben, dass bash als Anwendung ausgeführt werden soll, die wir als Shell für unsere virtualisierte Umgebung ausführen, verwenden wir den folgenden Befehl.

sudo chroot $home/chroot_jail/bin/bash

Möglicherweise werden Sie aufgefordert, Ihr Benutzerkennwort einzugeben, um fortzufahren. Geben Sie in diesem Fall Ihr Benutzerpasswort ein und der Befehl wird ausgeführt.

Wenn Sie alle Schritte korrekt befolgt haben, sollten Sie eine Ausgabe ähnlich der folgenden auf Ihrem Bildschirm erwarten.

Wie Sie im Screenshot sehen können, läuft jetzt die Bash-Version 4.4 als Shell für unser Chroot-Gefängnis.

Jetzt ist unsere minimalistische virtuelle Linux-Umgebung erstellt und einsatzbereit. Wir können mit der virtuellen Umgebung interagieren, indem wir Bash wie ein normales Linux-System verwenden.

Schlussfolgerung

Der Chroot-Befehl in Linux ist ein einfacher, aber effektiver Befehl im Toolset eines Linux-Benutzers. Seine Fähigkeit, eine virtualisierte Umgebung zu erstellen, ohne dass Überwachungssoftware erforderlich ist, wie wir es bei virtuellen Maschinen sehen, macht es zu einer leichten Alternative für diese Verwendung.

Dieses Tutorial soll Ihnen helfen zu verstehen, was Chroot ist, und Ihnen dann zeigen, wie Sie ein einfaches Chroot-Gefängnis bauen. Wenn Sie Fragen, Feedback oder Vorschläge haben, können Sie sich gerne in den Kommentaren unten an uns wenden.


Linux
  1. Eine Anleitung zum Linux-Terminal für Anfänger

  2. 8 Tipps für die Linux-Kommandozeile

  3. 8 praktische Beispiele für den Linux-Xargs-Befehl für Anfänger

  4. Praktische Beispiele für den Unzip-Befehl unter Linux

  5. 5 praktische Beispiele des dd-Befehls unter Linux

12 praktische Beispiele für In Command unter Linux

25 Praktischer mv-Befehl in Linux für alltägliche Benutzer

Die 50 praktischen Beispiele des SED-Befehls in Linux

5 praktische Beispiele für den Read-Befehl unter Linux

Der apt-Befehl – ​​Ein praktischer Gebrauchsleitfaden

Praktische Linux- und Unix-Tee-Befehle für den Linux-Administrator