TAG 04: Der Festungswächter

LinuxBeginner
Jetzt üben

Einführung

Willkommen an Tag 4 bei der LabEx Corporation, Festungswächter! Nach deiner brillanten Detektivarbeit gestern bei der Lösung der kritischen Probleme von Projekt Phoenix hat dich der Chief Technology Officer (CTO) persönlich damit beauftragt, die Sicherheit für das gesamte Projekt zu leiten.

„Wir können uns keinen weiteren Sicherheitsvorfall leisten“, erklärt der CTO während deines morgendlichen Briefings. „Deine Untersuchung hat gezeigt, dass unsere bisherige Sicherheitskonfiguration unzureichend war. Sarah Chen und das Entwicklungsteam benötigen eine absolut sichere Umgebung, um Projekt Phoenix termingerecht abzuschließen.“

Die jüngste Krise hat den Bedarf an robusten Sicherheitsmaßnahmen verdeutlicht. Ein neuer Auftragnehmer wird dem Team beitreten, um die Entwicklung zu beschleunigen, und du musst sicherstellen, dass die Zugriffskontrollen perfekt konfiguriert sind. Du wirst sichere Dateisysteme erstellen, präzise Besitzverhältnisse zuweisen, granulare Berechtigungen festlegen und kollaborative Arbeitsbereiche einrichten, die das geistige Eigentum von TechNova schützen.

Der Erfolg von Projekt Phoenix – und die Zukunft des Unternehmens – hängt nun von der digitalen Festung ab, die du heute errichtest. Lass uns dieses System absichern!

Erstellen einer sicheren Datei für ein neues Projekt

Deine erste Aufgabe besteht darin, eine Datei zu erstellen, in der sensible Projektschlüssel gespeichert werden. Diese Datei muss streng vertraulich sein und darf nur vom Besitzer aufgerufen werden können.

Aufgaben

  • Erstelle eine neue, leere Datei namens project_keys.txt im Verzeichnis ~/project/phoenix_project.
  • Setze die Berechtigungen für diese Datei so, dass nur der Besitzer Lese- und Schreibzugriff hat und niemand sonst (auch nicht Benutzer in derselben Gruppe) Zugriff hat.

Anforderungen

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

Hinweise

  • Du kannst eine leere Datei mit dem Befehl touch erstellen.
  • Erinnere dich an die numerischen Werte für Berechtigungen: Lesen (4), Schreiben (2) und Ausführen (1).
  • Die finale Berechtigung sollte 600 sein (Lesen+Schreiben für den Besitzer, nichts für Gruppe und andere).

Beispiele

Nach Abschluss dieser Aufgabe solltest du eine Ausgabe wie diese sehen:

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

Die Dateiberechtigungen zeigen -rw-------, was bedeutet:

  • Der Besitzer hat Lese- und Schreibberechtigungen
  • Die Gruppe hat keine Berechtigungen
  • Andere haben keine Berechtigungen

Zuweisen von Besitzrechten für Projektressourcen

Projekt Phoenix wird von Sarah Chens Entwicklungsteam geleitet, wobei der technische Leiter dev_lead die Kernentwicklungsarbeit steuert. Dieser Benutzer gehört zur Gruppe developers, mit der du die ganze Woche über gearbeitet hast. Du musst die Besitzrechte aller Projektdateien und -verzeichnisse übertragen, um eine ordnungsgemäße Zugriffskontrolle zu gewährleisten.

Aufgaben

  • Ändere den Besitzer des Verzeichnisses ~/project/phoenix_project und aller darin enthaltenen Inhalte auf den Benutzer dev_lead.
  • Ändere den Gruppenbesitzer des Verzeichnisses ~/project/phoenix_project und aller darin enthaltenen Inhalte auf die Gruppe developers.

Anforderungen

  • Der Benutzerbesitzer muss dev_lead sein.
  • Der Gruppenbesitzer muss developers sein.
  • Die Änderung der Besitzverhältnisse muss rekursiv auf alle Dateien und Unterverzeichnisse innerhalb von ~/project/phoenix_project angewendet werden.
  • Du musst den Befehl chown verwenden.

Hinweise

  • Der Befehl chown kann sowohl Benutzer als auch Gruppe gleichzeitig mit der Syntax user:group ändern.
  • Suche nach einer Option im Befehl chown, die es ermöglicht, rekursiv auf Dateien und Verzeichnisse zu operieren. Der Befehl man chown ist dein bester Freund.
  • Da die Dateien derzeit root gehören, musst du sudo verwenden, um die Besitzverhältnisse zu ändern.

Beispiele

Nach Abschluss dieser Aufgabe solltest du eine Ausgabe wie diese sehen:

$ 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

Alle Dateien und Verzeichnisse sollten nun wie folgt gehören:

  • Benutzer: dev_lead
  • Gruppe: developers

Absichern des Hauptprojektverzeichnisses

Nachdem die Besitzverhältnisse nun korrekt sind, musst du die Basisberechtigungen für das Hauptprojektverzeichnis ~/project/phoenix_project festlegen. Die Richtlinie lautet: Der Besitzer soll die volle Kontrolle haben, die Gruppe soll Dateien auflisten und das Verzeichnis betreten können, und Außenstehende sollen überhaupt keinen Zugriff haben.

Aufgaben

  • Lege die Berechtigungen für das Verzeichnis ~/project/phoenix_project fest.

Anforderungen

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

Hinweise

  • Die „Ausführen“-Berechtigung für ein Verzeichnis erlaubt es, mit cd in das Verzeichnis zu wechseln.
  • Berechne den numerischen Berechtigungswert für Besitzer, Gruppe und andere.
  • Besitzer (rwx) = 4+2+1 = 7
  • Gruppe (r-x) = 4+0+1 = 5
  • Andere (---) = 0+0+0 = 0

Beispiele

Nach Abschluss dieser Aufgabe solltest du eine Ausgabe wie diese sehen:

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

Die Verzeichnisberechtigungen zeigen drwxr-x---, was bedeutet:

  • Besitzer (dev_lead) hat Lese-, Schreib- und Ausführungsberechtigungen
  • Gruppe (developers) hat Lese- und Ausführungsberechtigungen
  • Andere haben keine Berechtigungen

Das bedeutet:

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

Einrichten kollaborativer Berechtigungen für das Entwicklungsteam

Hinweis: Stelle sicher, dass du zuerst Schritt 2 abgeschlossen hast, der die Besitzverhältnisse aller Projektverzeichnisse (einschließlich src) auf dev_lead:developers setzt. Dieser Schritt baut auf diesen Besitzverhältnissen auf.

Das Entwicklungsteam muss innerhalb des Verzeichnisses ~/project/phoenix_project/src effektiv zusammenarbeiten. Um eine reibungslose Zusammenarbeit zu gewährleisten, sollte jede neue Datei oder jedes neue Verzeichnis, das innerhalb von src erstellt wird, automatisch zur Gruppe developers gehören. Diese spezielle Berechtigung betrifft nur den Gruppenbesitzer. Der Benutzerbesitzer bleibt weiterhin das Konto, das die Datei erstellt, und die Lese-/Schreibberechtigungen der Datei hängen weiterhin von der umask dieses Benutzers ab.

Aufgaben

  • Setze eine spezielle Berechtigung für das Verzeichnis ~/project/phoenix_project/src, die erzwingt, dass alle neuen Dateien und Unterverzeichnisse, die darin erstellt werden, die Gruppenbesitzerschaft vom Verzeichnis src selbst (also developers) erben.

Anforderungen

  • Die Lösung muss sicherstellen, dass neue Dateien in ~/project/phoenix_project/src automatisch die Gruppe developers erben.
  • Du musst den Befehl chmod verwenden, um diese spezielle Berechtigung zu setzen.
  • Du musst möglicherweise sudo verwenden, um Berechtigungen für Verzeichnisse zu setzen, die anderen Benutzern gehören.

Hinweise

  • Diese spezielle Berechtigung wird als „Set Group ID“ oder setgid-Bit bezeichnet.
  • Du kannst das setgid-Bit entweder mit symbolischer (g+s) oder numerischer Notation anwenden.
  • In der numerischen Notation hat das setgid-Bit den Wert 2. Es wird vor die drei Standard-Berechtigungsziffern gesetzt (z. B. 2770).

Beispiele

Nach Abschluss dieser Aufgabe solltest du eine Ausgabe wie diese sehen:

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

Das s an der Position für die Gruppenausführung zeigt an, dass das setgid-Bit gesetzt ist und die Gruppe Ausführungsberechtigung hat. Wenn du nun eine neue Datei erstellst:

$ 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

Beachte, dass die neue Datei automatisch zur Gruppe developers gehört, selbst wenn du als ein anderer Benutzer angemeldet bist. Der Dateibesitzer bleibt weiterhin der Benutzer, der die Datei erstellt hat, während der Gruppenbesitzer vom Verzeichnis src geerbt wird. Dies stellt die Zusammenarbeit innerhalb des Entwicklungsteams sicher und behält gleichzeitig die korrekte Gruppenbesitzerschaft bei.

Die Berechtigungen zeigen:

  • Besitzer (dev_lead) hat Lese- und Schreibberechtigungen
  • Gruppe (developers) hat Lese- und Schreibberechtigungen
  • Andere haben keine Berechtigungen
  • Das kleine s an der Position für die Gruppenausführung zeigt an, dass das setgid-Bit gesetzt ist und die Gruppe Ausführungsberechtigung hat

Zusammenfassung

Hervorragende Arbeit, Festungswächter! Du hast erfolgreich ein undurchdringliches Sicherheitsfundament für Projekt Phoenix errichtet. Der CTO und Sarah Chen sind beeindruckt von deiner umfassenden Sicherheitsimplementierung. Das Projektverzeichnis ist nun eine Festung, die das geistige Eigentum von TechNova schützt und gleichzeitig eine nahtlose Zusammenarbeit ermöglicht.

Während dieser Herausforderung hast du wichtige Linux-Sicherheitskompetenzen gemeistert:

  • Erstellen von Dateien und grundlegende Berechtigungen: Du hast sensible Projektschlüssel mit präzisen Berechtigungskontrollen abgesichert.
  • Verwaltung von Besitzverhältnissen: Du hast fachmännisch die Besitzrechte an Sarahs Entwicklungsteam und die technische Leitung übertragen.
  • Verzeichnissicherheit: Du hast Zugriff und Sicherheit für die Hauptprojektinfrastruktur in Einklang gebracht.
  • Erweiterte Berechtigungen: Du hast setgid-Berechtigungen konfiguriert, um kollaborative Team-Arbeitsbereiche mit automatischer Vererbung der Gruppenbesitzerschaft zu gewährleisten.
  • Kollaborative Arbeitsbereiche: Du hast Team-Arbeitsbereiche konfiguriert, die Sicherheit wahren und gleichzeitig die Produktivität fördern.

Diese fortgeschrittenen Sicherheitskenntnisse haben bewiesen, dass du bereit für Aufgaben als leitender Systemadministrator bist. Morgen stellst du dich deiner letzten Herausforderung als Hüter der Schlüssel, bei der du den menschlichen Faktor der Sicherheit von Projekt Phoenix verwaltest, indem du den Benutzerzugriff auf das System kontrollierst!

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