2. Privilegien-Level

Die nächsten Lektionen behandeln eher theoretische Konzepte. Wenn Sie praktische Übungen bevorzugen, können Sie gerne vorspringen und später zu diesen Themen zurückkehren.

Ein grundlegender Aspekt der Linux-Architektur ist die Trennung zwischen dem Benutzerbereich (User Space) und dem Kernel. Aber warum können wir ihre Kräfte nicht in einer einzigen Schicht vereinen? Der Grund sind Sicherheit und Stabilität, die dadurch erreicht werden, dass sie in unterschiedlichen Modi arbeiten.

Was ist der Unterschied zwischen Kernel-Modus und Benutzer-Modus

Das System arbeitet in zwei unterschiedlichen Modi: Kernel-Modus und Benutzer-Modus. Diese Trennung ist entscheidend, um die Hardware und Ressourcen des Systems vor direktem, unkontrolliertem Zugriff durch Anwendungen zu schützen.

Im Kernel-Modus hat der Kernel vollständigen und uneingeschränkten Zugriff auf die Hardware; er kontrolliert alles. Dies ist die höchste Stufe der Privilegien.

Im Benutzer-Modus haben Anwendungen nur sehr begrenzten Zugriff auf einen kleinen, sicheren Teil des Speichers und der CPU-Ressourcen.

Wenn eine Benutzeranwendung eine Aktion ausführen muss, die die Hardware betrifft – wie das Lesen von einer Festplatte, das Senden von Daten über das Netzwerk oder der Zugriff auf ein Peripheriegerät – kann sie dies nicht direkt tun. Diese Operationen müssen vom Kernel im Kernel-Modus behandelt werden. Dieses Design verhindert, dass ein fehlerhaftes oder bösartiges Programm das gesamte System kompromittiert. Sie möchten beispielsweise nicht, dass Spyware direkten Hardwarezugriff erhält, da sie alle Ihre Daten lesen oder Ihre Webcam steuern könnte.

Schutzringe und privilegierter Zugriff

Diese unterschiedlichen Modi werden oft als Privilegienstufen oder Schutzringe bezeichnet. Stellen Sie sich eine Festung mit konzentrischen Mauern vor: Der innerste Bereich ist der sicherste und hat die höchste Autorität. Die Schutzringe in einem Computer funktionieren ähnlich, wobei der innerste Ring der höchsten Privilegienstufe entspricht.

Auf einer Standard-x86-Computerarchitektur gibt es zwei Hauptebenen:

  • Ring 0: Hier läuft der Kernel. Er besitzt die höchste Stufe an Kernel-Privilegien, kann jede Systemanweisung ausführen und erhält das volle Vertrauen, die Hardware zu verwalten. Dies ist der Kern des privilegierten Zugriffs.
  • Ring 3: Dies ist die Ebene, auf der Benutzeranwendungen laufen. Es ist der am wenigsten privilegierte Ring und hat keinen direkten Hardwarezugriff.

Dieses ringbasierte Sicherheitsmodell stellt sicher, dass Benutzeranwendungen von kritischen Systemkomponenten isoliert sind. Aber wenn Anwendungen immer in einem anderen Modus als der Kernel sind, wie können sie notwendige Hardwareoperationen durchführen?

Systemaufrufe und Kernel-Privilegien

Die Brücke zwischen Benutzer-Modus und Kernel-Modus ist der Systemaufruf (System Call). Wenn eine Benutzeranwendung eine privilegierte Aufgabe ausführen muss, macht sie einen Systemaufruf, um den Kernel zu bitten, die Aktion in ihrem Namen durchzuführen.

Dieser Prozess ermöglicht es der Anwendung, vorübergehend und sicher vom Benutzer-Modus in den Kernel-Modus zu wechseln, um eine spezifische, kontrollierte Anweisung auszuführen. Sobald die Aufgabe abgeschlossen ist, schaltet das System zurück in den Benutzer-Modus. Dieser Mechanismus stellt sicher, dass Anwendungen die Dienste erhalten, die sie benötigen, ohne gefährlichen, direkten privilegierten Zugriff auf die Hardware zu erlangen.

Melden Sie sich an, um Ihren Lernfortschritt zu speichern

Anmelden

Übungen

Übung macht den Meister! Das Verständnis der theoretischen Konzepte von Benutzerbereich, Kernelbereich und Privilegienstufen ist entscheidend, aber praktische Erfahrung hilft dabei, zu festigen, wie sich diese Konzepte in der tatsächlichen Linux-Administration zeigen. Hier sind einige praktische Labs, um Ihr Verständnis dafür zu vertiefen, wie Benutzeraktionen mit dem zugrunde liegenden System interagieren:

  1. Linux-Benutzerkonten mit useradd, usermod und userdel verwalten – Üben Sie das Erstellen, Ändern und Löschen von Benutzerkonten, was direkt mit der Verwaltung von Entitäten zusammenhängt, die im Benutzerbereich agieren und für privilegierte Aktionen die Kernel-Interaktion benötigen.
  2. Datei- und Verzeichnisberechtigungen in Linux verwalten – Lernen Sie, den Zugriff auf Dateien und Verzeichnisse zu steuern, ein Kernsicherheitskonzept, das darauf beruht, dass der Kernel Berechtigungen basierend auf Benutzerprivilegien durchsetzt.
  3. Linux-Prozesse verwalten und überwachen – Erforschen Sie, wie man mit Prozessen interagiert und diese überwacht, bei denen es sich um Benutzerbereichsanwendungen handelt, die Systemaufrufe an den Kernel für Ressourcenverwaltung und Ausführung tätigen.

Diese Labs helfen Ihnen, die Konzepte der Benutzerinteraktion mit dem Linux-System anzuwenden, bei denen die Rolle des Kernels bei der Verwaltung von Ressourcen und der Durchsetzung von Privilegien von größter Bedeutung ist, und stärken Ihr Vertrauen in grundlegende Linux-Administrationsaufgaben.

Quiz

Welcher Ringnummer besitzt die höchsten Privilegien?