Der Wächter der Festung

LinuxBeginner
Jetzt üben

Einführung

Willkommen zu Tag 4 bei der LabEx Corporation, Wächter der Festung! Nachdem Sie gestern mit Ihrer hervorragenden Detektivarbeit die kritischen Probleme von Project Phoenix gelöst haben, hat der Chief Technology Officer Sie persönlich mit der Leitung der Sicherheit für das gesamte Projekt betraut.

„Wir können uns keinen weiteren Sicherheitsvorfall leisten“, erklärt der CTO während Ihrer morgendlichen Besprechung. „Ihre Untersuchung hat gezeigt, dass unsere bisherige Sicherheitskonfiguration unzureichend war. Sarah Chen und das Entwicklungsteam brauchen eine absolut sichere Umgebung, um Project Phoenix termingerecht fertigzustellen.“

Die jüngste Krise hat gezeigt, wie wichtig robuste Sicherheitsmaßnahmen sind. Ein neuer Auftragnehmer wird das Team unterstützen, um die Entwicklung zu beschleunigen. Sie müssen daher sicherstellen, dass die Zugriffskontrollen exakt konfiguriert sind. Sie müssen sichere Dateisysteme erstellen, die Eigentümerschaft präzise festlegen, granulare Berechtigungen setzen und kollaborative Arbeitsbereiche einrichten, die das geistige Eigentum von TechNova schützen.

Der Erfolg von Project Phoenix – und die Zukunft des Unternehmens – hängt nun von der digitalen Festung ab, die Sie heute errichten. Sichern wir dieses System!

Eine sichere Datei für ein neues Projekt erstellen

Ihre erste Aufgabe besteht darin, eine Datei für vertrauliche Projektschlüssel zu erstellen. Diese Datei muss streng vertraulich bleiben und darf nur für ihren Eigentümer zugänglich sein.

Aufgaben

  • Erstellen Sie im Verzeichnis ~/project/phoenix_project eine neue, leere Datei mit dem Namen project_keys.txt.
  • Setzen Sie die Berechtigungen so, dass nur der Eigentümer Lese- und Schreibzugriff hat. Alle anderen – auch Benutzer in derselben Gruppe – dürfen auf die Datei nicht zugreifen.

Anforderungen

  • Die Datei muss project_keys.txt heißen.
  • Die Datei muss unter ~/project/phoenix_project/project_keys.txt liegen.
  • Verwenden Sie den Befehl chmod mit numerischer Notation, um die Berechtigungen festzulegen.

Hinweise

  • Eine leere Datei können Sie mit dem Befehl touch erstellen.
  • Merken Sie sich die numerischen Werte für Berechtigungen: Lesen (4), Schreiben (2) und Ausführen (1).
  • Die endgültige Berechtigung muss 600 lauten (Lesen und Schreiben für den Eigentümer, keine Berechtigungen für Gruppe und andere).

Beispiele

Nach Abschluss dieser Aufgabe sollte die Ausgabe ungefähr so aussehen:

$ ls -l ~/project/phoenix_project/
-rw------- 1 labex labex 0 Sep 3 16:03 project_keys.txt

Die Dateiberechtigungen -rw------- bedeuten:

  • Der Eigentümer hat Lese- und Schreibberechtigungen.
  • Die Gruppe hat keine Berechtigungen.
  • Andere Benutzer haben keine Berechtigungen.

Die Eigentümerschaft von Projektressourcen festlegen

Project Phoenix wird vom Entwicklungsteam von Sarah Chen geleitet. Die technische Leitung dev_lead übernimmt die zentrale Entwicklungsarbeit. Dieser Benutzer gehört zur Gruppe developers, mit der Sie die ganze Woche gearbeitet haben. Sie müssen die Eigentümerschaft aller Projektdateien und -verzeichnisse ändern, damit die Zugriffskontrolle korrekt funktioniert.

Aufgaben

  • Ändern Sie den Eigentümer des Verzeichnisses ~/project/phoenix_project und seines gesamten Inhalts in den Benutzer dev_lead.
  • Ändern Sie den Gruppeneigentümer des Verzeichnisses ~/project/phoenix_project und seines gesamten Inhalts in die Gruppe developers.

Anforderungen

  • Der Benutzereigentümer muss dev_lead sein.
  • Der Gruppeneigentümer muss developers sein.
  • Die Änderung der Eigentümerschaft muss rekursiv auf alle Dateien und Unterverzeichnisse innerhalb von ~/project/phoenix_project angewendet werden.
  • Sie müssen den Befehl chown verwenden.

Hinweise

  • Mit dem Befehl chown können Sie Benutzer und Gruppe gleichzeitig ändern. Verwenden Sie dafür die Syntax user:group.
  • Suchen Sie nach einer Option des Befehls chown, mit der sich der Befehl rekursiv auf Dateien und Verzeichnisse anwenden lässt. Die Manpage man chown hilft Ihnen dabei.
  • Da die Dateien derzeit root gehören, müssen Sie sudo verwenden, um die Eigentümerschaft zu ändern.

Beispiele

Nach Abschluss dieser Aufgabe sollte die Ausgabe ungefähr so aussehen:

$ ls -ld ~/project/phoenix_project/
drwxrwxr-x 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

$ ls -l ~/project/phoenix_project/
total 0
drwxrwxr-x 2 dev_lead developers 27 Sep 3 16:00 docs
-rw------- 1 dev_lead developers 0 Sep 3 16:03 project_keys.txt
drwxrwxr-x 2 dev_lead developers 6 Sep 3 16:00 src

Nun sollten alle Dateien und Verzeichnisse folgende Eigentümerschaft haben:

  • Benutzer: dev_lead
  • Gruppe: developers

Das Hauptprojektverzeichnis absichern

Nachdem die Eigentümerschaft korrekt gesetzt ist, müssen Sie nun die grundlegenden Berechtigungen für das Hauptprojektverzeichnis ~/project/phoenix_project festlegen. Die Vorgabe lautet: Der Eigentümer soll vollständige Kontrolle haben, die Gruppe soll Dateien auflisten und das Verzeichnis betreten können, und Außenstehende sollen überhaupt keinen Zugriff erhalten.

Aufgaben

  • Setzen Sie die Berechtigungen für das Verzeichnis ~/project/phoenix_project.

Anforderungen

  • Der Eigentümer (dev_lead) muss Lese-, Schreib- und Ausführungsberechtigungen haben.
  • Die Gruppe (developers) muss Lese- und Ausführungsberechtigungen haben.
  • Andere Benutzer dürfen keine Berechtigungen haben.
  • Verwenden Sie chmod, um diese Berechtigungen auf das Verzeichnis ~/project/phoenix_project selbst anzuwenden, nicht rekursiv.
  • Da das Verzeichnis dev_lead gehört, müssen Sie möglicherweise sudo verwenden, um die Berechtigungen zu ändern.

Hinweise

  • Die Ausführungsberechtigung für ein Verzeichnis ermöglicht den Wechsel mit cd in dieses Verzeichnis.
  • Berechnen Sie den numerischen Berechtigungswert für Eigentümer, Gruppe und andere Benutzer.
  • Eigentümer (rwx) = 4+2+1 = 7
  • Gruppe (r-x) = 4+0+1 = 5
  • Andere (---) = 0+0+0 = 0

Beispiele

Nach Abschluss dieser Aufgabe sollte die Ausgabe ungefähr so aussehen:

$ ls -ld ~/project/phoenix_project/
drwxr-x--- 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

Die Verzeichnisberechtigungen drwxr-x--- bedeuten:

  • Der Eigentümer (dev_lead) hat Lese-, Schreib- und Ausführungsberechtigungen.
  • Die Gruppe (developers) hat Lese- und Ausführungsberechtigungen.
  • Andere Benutzer haben keine Berechtigungen.

Das bedeutet:

  • dev_lead kann vollständig auf das Verzeichnis zugreifen.
  • Mitglieder der Gruppe developers können den Inhalt auflisten und das Verzeichnis betreten.
  • Außenstehende haben keinen Zugriff auf das Verzeichnis.

Kollaborative Berechtigungen für das Entwicklungsteam einrichten

Hinweis: Stellen Sie sicher, dass Sie zuerst Schritt 2 abgeschlossen haben. Dadurch wird die Eigentümerschaft aller Projektverzeichnisse, einschließlich src, auf dev_lead:developers gesetzt. Dieser Schritt baut auf diesen Einstellungen auf.

Das Einrichtungsskript fügt den Benutzer labex zur Gruppe developers hinzu. Ihre aktuelle Shell übernimmt diese neue Gruppenmitgliedschaft möglicherweise nicht automatisch. Führen Sie im Terminal den Befehl newgrp developers aus, bevor Sie den Zugriff auf ~/project/phoenix_project/src testen. Andernfalls können trotz korrekter Eigentümerschaft und Berechtigungen Fehler vom Typ Permission denied auftreten.

Das Entwicklungsteam muss im Verzeichnis ~/project/phoenix_project/src effektiv zusammenarbeiten können. Damit dies reibungslos funktioniert, sollen alle neuen Dateien und Verzeichnisse, die innerhalb von src erstellt werden, automatisch der Gruppe developers gehören. Diese spezielle Berechtigung wirkt sich nur auf den Gruppeneigentümer aus. Der Benutzereigentümer bleibt weiterhin das Konto, das die Datei erstellt, und die Lese-/Schreibberechtigungen der Datei hängen weiterhin von der umask dieses Benutzers ab.

Aufgaben

  • Setzen Sie für das Verzeichnis ~/project/phoenix_project/src eine spezielle Berechtigung, durch die alle darin erstellten neuen Dateien und Unterverzeichnisse automatisch die Gruppeneigentümerschaft des Verzeichnisses src erben. Diese Gruppe ist developers.

Anforderungen

  • Neue Dateien in ~/project/phoenix_project/src müssen automatisch die Gruppe developers erben.
  • Die endgültigen Berechtigungen müssen dem Eigentümer und der Gruppe developers ermöglichen, das Verzeichnis src zu lesen, zu beschreiben und zu betreten. Andere Benutzer dürfen keinen Zugriff haben.
  • Sie müssen den Befehl chmod verwenden, um diese spezielle Berechtigung zu setzen.
  • Für Verzeichnisse, die anderen Benutzern gehören, müssen Sie möglicherweise sudo verwenden, um die Berechtigungen zu ändern.

Hinweise

  • Diese spezielle Berechtigung heißt „set group ID“ oder setgid-Bit.
  • Sie können das setgid-Bit entweder mit symbolischer Notation (g+s) oder mit numerischer Notation setzen.
  • In numerischer Notation hat das setgid-Bit den Wert 2. Dieser Wert steht vor den drei normalen Berechtigungsziffern, zum Beispiel bei 2770.

Beispiele

Nach Abschluss dieser Aufgabe sollte die Ausgabe ungefähr so aussehen:

$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/

Das s an der Stelle der Gruppenausführungsberechtigung zeigt an, dass das setgid-Bit gesetzt ist und die Gruppe Ausführungsberechtigungen hat. Wenn Sie nun eine neue Datei erstellen:

$ touch ~/project/phoenix_project/src/new_file.txt
$ ls -l ~/project/phoenix_project/src/new_file.txt
-rw-rw-r-- 1 labex developers 0 Apr 15 18:28 /home/labex/project/phoenix_project/src/new_file.txt

Beachten Sie, dass die neue Datei automatisch der Gruppe developers gehört, selbst wenn Sie als ein anderer Benutzer angemeldet sind. Der Eigentümer der Datei bleibt der Benutzer, der sie erstellt hat. Der Gruppeneigentümer wird dagegen vom Verzeichnis src geerbt. So kann das Entwicklungsteam gemeinsam arbeiten, während die korrekte Gruppenzugehörigkeit erhalten bleibt.

Die Berechtigungen bedeuten:

  • Der Eigentümer (dev_lead) hat Lese-, Schreib- und Ausführungsberechtigungen.
  • Die Gruppe (developers) hat Lese-, Schreib- und Ausführungsberechtigungen.
  • Andere Benutzer haben keine Berechtigungen.
  • Das kleingeschriebene s an der Stelle der Gruppenausführungsberechtigung zeigt an, dass das setgid-Bit gesetzt ist und die Gruppe Ausführungsberechtigung hat.

Zusammenfassung

Hervorragende Arbeit, Wächter der Festung! Sie haben eine undurchdringliche Sicherheitsgrundlage für Project Phoenix geschaffen. Der CTO und Sarah Chen sind von Ihrer umfassenden Sicherheitslösung beeindruckt. Das Projektverzeichnis ist nun eine Festung, die das geistige Eigentum von TechNova schützt und gleichzeitig eine reibungslose Zusammenarbeit ermöglicht.

In dieser Challenge haben Sie wichtige Linux-Sicherheitskenntnisse erworben:

  • Dateien und grundlegende Berechtigungen erstellen: Sie haben vertrauliche Projektschlüssel mit präzisen Berechtigungskontrollen geschützt.
  • Eigentümerschaft verwalten: Sie haben die Eigentümerschaft fachkundig dem Entwicklungsteam von Sarah und der technischen Leitung zugewiesen.
  • Verzeichnisse absichern: Sie haben Zugriff und Sicherheit für die zentrale Projektinfrastruktur ausgewogen festgelegt.
  • Erweiterte Berechtigungen: Sie haben setgid-Berechtigungen konfiguriert, damit kollaborative Arbeitsbereiche die Gruppeneigentümerschaft automatisch erben.
  • Kollaborative Arbeitsbereiche: Sie haben Bereiche für die Zusammenarbeit des Teams eingerichtet, die Sicherheit gewährleisten und zugleich produktives Arbeiten ermöglichen.

Diese erweiterten Sicherheitskenntnisse zeigen, dass Sie für anspruchsvolle Aufgaben in der Systemadministration bereit sind. Morgen erwartet Sie Ihre letzte Herausforderung als Hüter der Schlüssel: Sie verwalten den menschlichen Faktor der Sicherheit von Project Phoenix, indem Sie den Benutzerzugriff auf das System kontrollieren!

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben