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.txtim 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.txtheißen. - Die Datei muss sich unter
~/project/phoenix_project/project_keys.txtbefinden. - Verwende den Befehl
chmodmit numerischer Notation, um die Berechtigungen festzulegen.
Hinweise
- Du kannst eine leere Datei mit dem Befehl
toucherstellen. - Erinnere dich an die numerischen Werte für Berechtigungen: Lesen (4), Schreiben (2) und Ausführen (1).
- Die finale Berechtigung sollte
600sein (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_projectund aller darin enthaltenen Inhalte auf den Benutzerdev_lead. - Ändere den Gruppenbesitzer des Verzeichnisses
~/project/phoenix_projectund aller darin enthaltenen Inhalte auf die Gruppedevelopers.
Anforderungen
- Der Benutzerbesitzer muss
dev_leadsein. - Der Gruppenbesitzer muss
developerssein. - Die Änderung der Besitzverhältnisse muss rekursiv auf alle Dateien und Unterverzeichnisse innerhalb von
~/project/phoenix_projectangewendet werden. - Du musst den Befehl
chownverwenden.
Hinweise
- Der Befehl
chownkann sowohl Benutzer als auch Gruppe gleichzeitig mit der Syntaxuser:groupändern. - Suche nach einer Option im Befehl
chown, die es ermöglicht, rekursiv auf Dateien und Verzeichnisse zu operieren. Der Befehlman chownist dein bester Freund. - Da die Dateien derzeit
rootgehören, musst dusudoverwenden, 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_projectfest.
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_projectselbst anzuwenden (nicht rekursiv). - Da das Verzeichnis
dev_leadgehört, musst du möglicherweisesudoverwenden, um die Berechtigungen zu ändern.
Hinweise
- Die „Ausführen“-Berechtigung für ein Verzeichnis erlaubt es, mit
cdin 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_leadkann vollständig auf das Verzeichnis zugreifen- Mitglieder der Gruppe
developerskö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) aufdev_lead:developerssetzt. 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 Verzeichnissrcselbst (alsodevelopers) erben.
Anforderungen
- Die Lösung muss sicherstellen, dass neue Dateien in
~/project/phoenix_project/srcautomatisch die Gruppedeveloperserben. - Du musst den Befehl
chmodverwenden, um diese spezielle Berechtigung zu setzen. - Du musst möglicherweise
sudoverwenden, 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 Wert2. 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
san 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!



