TAG 04: Der Wächter der Festung

LinuxBeginner
Jetzt üben

Einführung

Willkommen zu Tag 4 bei der LabEx Corporation, Wächter der Festung! Nach Ihrer brillanten Detektivarbeit gestern bei der Lösung der kritischen Probleme von Projekt Phoenix hat Sie der Chief Technology Officer des Unternehmens 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 Ihrer morgendlichen Besprechung. "Ihre 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 die Notwendigkeit robuster Sicherheitsmaßnahmen verdeutlicht. Ein neuer externer Mitarbeiter wird das Team verstärken, um die Entwicklung zu beschleunigen, und Sie müssen sicherstellen, dass die Zugriffskontrollen perfekt konfiguriert sind. Sie müssen sichere Dateisysteme erstellen, präzise Eigentumsrechte 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 Sie heute errichten. Lassen Sie uns dieses System absichern!

Erstellen einer sicheren Datei für ein neues Projekt

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

Aufgaben

  • Erstellen Sie eine neue, leere Datei namens project_keys.txt im Verzeichnis ~/project/phoenix_project.
  • Legen Sie die Berechtigungen für diese Datei so fest, dass nur der Eigentümer Lese- und Schreibzugriff hat und niemand sonst (nicht einmal Benutzer in derselben Gruppe) irgendeinen Zugriff hat.

Anforderungen

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

Hinweise

  • Sie können eine leere Datei mit dem Befehl touch erstellen.
  • Denken Sie an die numerischen Werte für Berechtigungen: Lesen (4), Schreiben (2) und Ausführen (1).
  • Die endgültige Berechtigung sollte 600 sein (Lesen+Schreiben für den Eigentümer, nichts für Gruppe und andere).

Beispiele

Nach Abschluss dieser Aufgabe sollten Sie etwa Folgendes 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 Eigentümer hat Lese- und Schreibberechtigungen.
  • Die Gruppe hat keine Berechtigungen.
  • Andere haben keine Berechtigungen.
✨ Lösung prüfen und üben

Zuweisen von Eigentumsrechten für Projektressourcen

Projekt Phoenix wird von Sarah Chens Entwicklungsteam geleitet, wobei der technische Leiter dev_lead die Kernentwicklungsarbeit verwaltet. Dieser Benutzer gehört zur Gruppe developers, mit der Sie die ganze Woche über gearbeitet haben. Sie müssen die Eigentumsrechte an allen Projektdateien und -verzeichnissen übertragen, um eine ordnungsgemäße Zugriffskontrolle zu gewährleisten.

Aufgaben

  • Ändern Sie den Eigentümer des Verzeichnisses ~/project/phoenix_project und all seiner Inhalte auf den Benutzer dev_lead.
  • Ändern Sie die Gruppenzugehörigkeit des Verzeichnisses ~/project/phoenix_project und all seiner Inhalte auf die Gruppe developers.

Anforderungen

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

Hinweise

  • Der Befehl chown kann sowohl den Benutzer als auch die Gruppe gleichzeitig mit der Syntax user:group ändern.
  • Suchen Sie nach einer Option im Befehl chown, die es ermöglicht, rekursiv auf Dateien und Verzeichnisse zu wirken. Der Befehl man chown hilft Ihnen hier weiter.
  • Da die Dateien derzeit root gehören, müssen Sie sudo verwenden, um die Eigentumsrechte zu ändern.

Beispiele

Nach Abschluss dieser Aufgabe sollten Sie etwa Folgendes 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 folgendem gehören:

  • Benutzer: dev_lead
  • Gruppe: developers
✨ Lösung prüfen und üben

Absichern des Hauptprojektverzeichnisses

Nachdem die Eigentumsrechte nun korrekt sind, müssen Sie die Basisberechtigungen für das Hauptprojektverzeichnis ~/project/phoenix_project festlegen. Die Richtlinie lautet wie folgt: Der Eigentümer soll die volle Kontrolle haben, die Gruppe soll Dateien auflisten und das Verzeichnis betreten können, und Außenstehende sollen keinerlei Zugriff haben.

Aufgaben

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

Anforderungen

  • Der Eigentümer (dev_lead) muss Lese-, Schreib- und Ausführungsberechtigungen haben.
  • Die Gruppe (developers) muss Lese- und Ausführungsberechtigungen haben.
  • Andere dürfen keine Berechtigungen haben.
  • Verwenden Sie den Befehl 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ühren"-Berechtigung bei einem Verzeichnis erlaubt es, mit cd hineinzuwechseln.
  • Berechnen Sie den numerischen Berechtigungswert für Eigentümer, Gruppe und andere.
  • Eigentümer (rwx) = 4+2+1 = 7
  • Gruppe (r-x) = 4+0+1 = 5
  • Andere (---) = 0+0+0 = 0

Beispiele

Nach Abschluss dieser Aufgabe sollten Sie etwa Folgendes 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:

  • Der Eigentümer (dev_lead) hat Lese-, Schreib- und Ausführungsberechtigungen.
  • Die 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 den Inhalt auflisten und das Verzeichnis betreten.
  • Außenstehende haben keinen Zugriff auf das Verzeichnis.
✨ Lösung prüfen und üben

Einrichten kollaborativer Berechtigungen für das Entwicklerteam

Hinweis: Stellen Sie sicher, dass Sie zuerst Schritt 2 abgeschlossen haben, der die Eigentumsrechte aller Projektverzeichnisse (einschließlich src) auf dev_lead:developers setzt. Dieser Schritt baut auf diesen Einstellungen auf.

Das Entwicklungsteam muss im Verzeichnis ~/project/phoenix_project/src effektiv zusammenarbeiten können. Um eine reibungslose Zusammenarbeit zu gewährleisten, sollte jede neue Datei oder jedes neue Verzeichnis, das innerhalb von src erstellt wird, automatisch der Gruppe developers gehören und nicht der Primärgruppe des Benutzers, der sie erstellt hat.

Aufgaben

  • Legen Sie eine Sonderberechtigung für das Verzeichnis ~/project/phoenix_project/src fest, die erzwingt, dass alle darin neu erstellten Dateien und Unterverzeichnisse die Gruppenzugehörigkeit vom Verzeichnis src selbst (also developers) erben.

Anforderungen

  • Die Lösung muss sicherstellen, dass neue Dateien in ~/project/phoenix_project/src automatisch der Gruppe developers gehören.
  • Sie müssen den Befehl chmod verwenden, um diese Sonderberechtigung festzulegen.
  • Möglicherweise müssen Sie sudo verwenden, um Berechtigungen für Verzeichnisse festzulegen, die anderen Benutzern gehören.

Hinweise

  • Diese Sonderberechtigung wird "Set Group ID" oder setgid-Bit genannt.
  • Sie können 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 standardmäßigen drei Berechtigungsziffern gesetzt (z. B. 2770).

Beispiele

Nach Abschluss dieser Aufgabe sollten Sie etwa Folgendes 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 Ausführungsberechtigung der Gruppe zeigt an, dass das setgid-Bit gesetzt ist und die Gruppe Ausführungsrechte 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---- 1 dev_lead developers 0 Sep 3 16:05 new_file.txt

Beachten Sie, dass die neue Datei automatisch der Gruppe developers gehört, selbst wenn Sie als ein anderer Benutzer angemeldet sind. Dies gewährleistet die Zusammenarbeit innerhalb des Entwicklungsteams bei gleichzeitiger Wahrung der korrekten Gruppenzugehörigkeit.

Die Berechtigungen zeigen:

  • Der Eigentümer (dev_lead) hat Lese- und Schreibberechtigungen.
  • Die Gruppe (developers) hat Lese- und Schreibberechtigungen.
  • Andere haben keine Berechtigungen.
  • Das kleingeschriebene s an der Position für die Gruppenausführung zeigt an, dass das setgid-Bit gesetzt ist und die Gruppe Ausführungsrechte hat.
✨ Lösung prüfen und üben

Zusammenfassung

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

Im Laufe dieser Herausforderung haben Sie entscheidende Linux-Sicherheitsfertigkeiten gemeistert:

  • Erstellen von Dateien und Basisberechtigungen: Sie haben sensible Projektschlüssel mit präzisen Zugriffskontrollen abgesichert.
  • Eigentumsverwaltung: Sie haben die Eigentumsrechte fachmännisch an Sarahs Entwicklungsteam und die technische Leitung übertragen.
  • Verzeichnissicherheit: Sie haben den Spagat zwischen Zugriff und Sicherheit für die Hauptprojektinfrastruktur gemeistert.
  • Fortgeschrittene Berechtigungen: Sie haben setgid-Berechtigungen konfiguriert, um kollaborative Team-Arbeitsbereiche mit automatischer Vererbung der Gruppenzugehörigkeit zu gewährleisten.
  • Kollaborative Arbeitsbereiche: Sie haben Team-Kollaborationsräume eingerichtet, die die Sicherheit wahren und gleichzeitig die Produktivität fördern.

Diese fortgeschrittenen Sicherheitskenntnisse haben bewiesen, dass Sie bereit für die Aufgaben eines Senior-Systemadministrators sind. Morgen werden Sie Ihre letzte Herausforderung als "Hüter der Schlüssel" annehmen und das menschliche Element der Sicherheit von Projekt Phoenix verwalten, indem Sie den Benutzerzugriff auf das System kontrollieren!