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_projecteine neue, leere Datei mit dem Namenproject_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.txtheißen. - Die Datei muss unter
~/project/phoenix_project/project_keys.txtliegen. - Verwenden Sie den Befehl
chmodmit numerischer Notation, um die Berechtigungen festzulegen.
Hinweise
- Eine leere Datei können Sie mit dem Befehl
toucherstellen. - Merken Sie sich die numerischen Werte für Berechtigungen: Lesen (4), Schreiben (2) und Ausführen (1).
- Die endgültige Berechtigung muss
600lauten (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_projectund seines gesamten Inhalts in den Benutzerdev_lead. - Ändern Sie den Gruppeneigentümer des Verzeichnisses
~/project/phoenix_projectund seines gesamten Inhalts in die Gruppedevelopers.
Anforderungen
- Der Benutzereigentümer muss
dev_leadsein. - Der Gruppeneigentümer muss
developerssein. - Die Änderung der Eigentümerschaft muss rekursiv auf alle Dateien und Unterverzeichnisse innerhalb von
~/project/phoenix_projectangewendet werden. - Sie müssen den Befehl
chownverwenden.
Hinweise
- Mit dem Befehl
chownkönnen Sie Benutzer und Gruppe gleichzeitig ändern. Verwenden Sie dafür die Syntaxuser:group. - Suchen Sie nach einer Option des Befehls
chown, mit der sich der Befehl rekursiv auf Dateien und Verzeichnisse anwenden lässt. Die Manpageman chownhilft Ihnen dabei. - Da die Dateien derzeit
rootgehören, müssen Siesudoverwenden, 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_projectselbst anzuwenden, nicht rekursiv. - Da das Verzeichnis
dev_leadgehört, müssen Sie möglicherweisesudoverwenden, um die Berechtigungen zu ändern.
Hinweise
- Die Ausführungsberechtigung für ein Verzeichnis ermöglicht den Wechsel mit
cdin 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_leadkann vollständig auf das Verzeichnis zugreifen.- Mitglieder der Gruppe
developerskö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, aufdev_lead:developersgesetzt. Dieser Schritt baut auf diesen Einstellungen auf.Das Einrichtungsskript fügt den Benutzer
labexzur Gruppedevelopershinzu. Ihre aktuelle Shell übernimmt diese neue Gruppenmitgliedschaft möglicherweise nicht automatisch. Führen Sie im Terminal den Befehlnewgrp developersaus, bevor Sie den Zugriff auf~/project/phoenix_project/srctesten. Andernfalls können trotz korrekter Eigentümerschaft und Berechtigungen Fehler vom TypPermission deniedauftreten.
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/srceine spezielle Berechtigung, durch die alle darin erstellten neuen Dateien und Unterverzeichnisse automatisch die Gruppeneigentümerschaft des Verzeichnissessrcerben. Diese Gruppe istdevelopers.
Anforderungen
- Neue Dateien in
~/project/phoenix_project/srcmüssen automatisch die Gruppedeveloperserben. - Die endgültigen Berechtigungen müssen dem Eigentümer und der Gruppe
developersermöglichen, das Verzeichnissrczu lesen, zu beschreiben und zu betreten. Andere Benutzer dürfen keinen Zugriff haben. - Sie müssen den Befehl
chmodverwenden, um diese spezielle Berechtigung zu setzen. - Für Verzeichnisse, die anderen Benutzern gehören, müssen Sie möglicherweise
sudoverwenden, 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 Wert2. Dieser Wert steht vor den drei normalen Berechtigungsziffern, zum Beispiel bei2770.
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
san der Stelle der Gruppenausführungsberechtigung zeigt an, dass dassetgid-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!



