Einführung
In diesem Lab lernen Sie, wie Sie Spezialberechtigungen und die umask-Einstellung in einer Linux-Umgebung verwalten, um einen gemeinsamen Arbeitsbereich abzusichern. Sie werden untersuchen, wie Sie die Standardberechtigungen für neu erstellte Dateien steuern und wie Sie spezielle Berechtigungs-Bits wie das Sticky Bit einsetzen, um Dateien in einem geteilten Verzeichnis davor zu schützen, von anderen Benutzern gelöscht zu werden.
Sie beginnen mit der Vorbereitung einer simulierten gemeinsamen Umgebung. Dazu erstellen Sie eine neue Benutzergruppe sowie ein Verzeichnis und weisen die entsprechenden Eigentumsrechte und Berechtigungen zu. Anschließend modifizieren Sie den umask-Wert, um strengere Standardberechtigungen zu erzwingen, und überprüfen deren Wirkung durch das Erstellen einer neuen Datei. Abschließend setzen Sie das Sticky Bit für das gemeinsame Verzeichnis und bestätigen dessen Aktivierung, um sicherzustellen, dass nur Dateieigentümer ihre eigenen Dateien innerhalb dieses Bereichs löschen können.
Umgebung vorbereiten und auf das Verzeichnis zugreifen
In diesem Schritt bereiten Sie die Umgebung für die Verwaltung spezieller Dateiberechtigungen vor. Dazu erstellen Sie ein dediziertes Verzeichnis, das einen gemeinsamen Arbeitsbereich für ein Forschungsteam simuliert. Sie legen eine neue Benutzergruppe und ein Verzeichnis an und weisen diesem dann die passenden Eigentümer und Berechtigungen zu. Alle Operationen werden in Ihrem Projektverzeichnis ~/project durchgeführt.
Zuerst erstellen wir eine neue Gruppe namens research. Diese Gruppe repräsentiert die Teammitglieder, die Zugriff auf das gemeinsame Verzeichnis haben. Verwenden Sie den Befehl sudo groupadd, um sie zu erstellen. sudo wird benötigt, da das Erstellen von Gruppen eine administrative Aufgabe ist.
sudo groupadd research
Erstellen Sie als Nächstes ein neues Verzeichnis namens RandD innerhalb Ihres ~/project-Verzeichnisses. Dies wird unser Hauptarbeitsverzeichnis für dieses Lab sein.
mkdir ~/project/RandD
Ändern Sie nun die Gruppenzugehörigkeit des neu erstellten RandD-Verzeichnisses auf die Gruppe research. Hierfür wird der Befehl chgrp verwendet.
sudo chgrp research ~/project/RandD
Um sicherzustellen, dass nur der Eigentümer (Benutzer labex) und Mitglieder der Gruppe research auf dieses Verzeichnis zugreifen können, setzen Sie die Berechtigungen. Wir verwenden den Befehl chmod mit dem numerischen Code 770. Dieser Code gewährt Lese-, Schreib- und Ausführungsrechte (rwx, was 4+2+1=7 entspricht) für den Benutzer und die Gruppe, während andere ("others") keinerlei Rechte erhalten (---, was 0 entspricht).
chmod 770 ~/project/RandD
Sie können die Berechtigungen und den Eigentümer des Verzeichnisses mit dem Befehl ls -ld überprüfen. Die Option -l liefert ein langes Listenformat und die Option -d listet das Verzeichnis selbst auf, nicht dessen Inhalt.
ls -ld ~/project/RandD
Sie sollten eine Ausgabe ähnlich der folgenden sehen, welche die Berechtigungen (drwxrwx---), den Eigentümer (labex) und die Gruppe (research) bestätigt.
drwxrwx--- 2 labex research 4096 Dec 12 10:30 /home/labex/project/RandD
Wechseln Sie schließlich in das Verzeichnis RandD. Hier werden Sie die Aufgaben der folgenden Schritte ausführen.
cd ~/project/RandD
Sie haben die Arbeitsumgebung nun erfolgreich eingerichtet.
Standard-Dateiberechtigungen mit umask 027 einschränken
In diesem Schritt lernen Sie, wie Sie die Standardberechtigungen für neu erstellte Dateien mit dem Befehl umask steuern. Wenn Sie eine Datei erstellen, weist das System ihr einen Standardsatz an Berechtigungen zu. Oft sind diese Standards zu freizügig und erlauben beispielsweise "anderen" Benutzern, Ihre Dateien zu lesen. In einer sicheren Umgebung wie unserem RandD-Verzeichnis möchten wir dies einschränken.
Der Befehl umask (user file-creation mode mask) legt fest, welche Berechtigungen von den Basisberechtigungen entfernt werden sollen, wenn eine neue Datei oder ein neues Verzeichnis erstellt wird.
- Für Dateien ist die Basisberechtigung
666(rw-rw-rw-). - Für Verzeichnisse ist die Basisberechtigung
777(rwxrwxrwx).
Wir werden die umask auf 027 setzen. Dieser Wert weist das System an, folgende Berechtigungen zu entfernen:
- User (Eigentümer):
0- Keine Berechtigungen entfernt. - Group (Gruppe):
2- Schreibberechtigung entfernt. - Other (Andere):
7(4+2+1) - Lese-, Schreib- und Ausführungsberechtigungen entfernt.
Das bedeutet, dass jede neu erstellte Datei die Berechtigungen 666 - 027 = 640 (rw-r-----) erhält und jedes neue Verzeichnis die Berechtigungen 777 - 027 = 750 (rwxr-x---).
Ändern Sie zunächst die Standardberechtigungen für Ihre aktuelle Terminal-Sitzung, indem Sie umask 027 in der Shell eingeben. Stellen Sie sicher, dass Sie sich noch im Verzeichnis ~/project/RandD befinden.
umask 027
Überprüfen Sie anschließend den neuen Wert von umask, indem Sie den Befehl ohne Parameter eingeben.
umask
Der Befehl sollte den neuen umask-Wert anzeigen. Die führende Null zeigt an, dass keine Spezialberechtigungen (wie das Sticky Bit, das Sie später kennenlernen) Teil der Maske sind.
027
Sie haben die Standardberechtigungen für die Dateierstellung in Ihrer aktuellen Sitzung erfolgreich geändert. Im nächsten Schritt werden Sie eine Datei erstellen, um die Wirkung dieser neuen umask zu beobachten.
Eine Datei erstellen und die neuen umask-Berechtigungen verifizieren
In diesem Schritt setzen Sie die neue umask-Einstellung in die Praxis um, indem Sie eine Datei erstellen. Dies demonstriert, wie die im vorherigen Schritt konfigurierten Standardberechtigungen automatisch angewendet werden und Ihr neues Dokument vor unbefugtem Zugriff schützen. Sie sollten sich weiterhin im Verzeichnis ~/project/RandD befinden.
Erstellen wir eine neue, leere Datei namens schedule.odt mit dem Befehl touch. Der Befehl touch ist ein einfacher Weg, um leere Dateien zu erstellen oder den Zeitstempel existierender Dateien zu aktualisieren.
touch schedule.odt
Nachdem die Datei erstellt wurde, müssen Sie deren Berechtigungen überprüfen. Verwenden Sie den Befehl ls -l, um die detaillierten Informationen für schedule.odt anzuzeigen.
ls -l schedule.odt
Sie werden eine Ausgabe ähnlich der folgenden sehen. Der wichtigste Teil ist die erste Spalte, welche die Berechtigungen der Datei anzeigt.
-rw-r----- 1 labex research 0 Dec 12 10:35 schedule.odt
Lassen Sie uns die Berechtigungszeichenfolge -rw-r----- aufschlüsseln:
- Das erste Zeichen
-gibt an, dass es sich um eine Datei handelt. - Die nächsten drei Zeichen
rw-sind die Berechtigungen für den User (Eigentümer), also Lesen und Schreiben. Dies entspricht dem numerischen Wert6. - Die folgenden drei Zeichen
r--sind die Berechtigungen für die Gruppe, also nur Lesen. Dies entspricht dem numerischen Wert4. - Die letzten drei Zeichen
---sind die Berechtigungen für Andere, was bedeutet, dass keinerlei Rechte bestehen. Dies entspricht dem numerischen Wert0.
Diese Berechtigungen (640) sind das direkte Ergebnis der Anwendung der umask von 027 auf die systemweiten Standard-Dateiberechtigungen von 666. Die umask hat erfolgreich die Schreibrechte für die Gruppe und alle Rechte für Andere entfernt, genau wie beabsichtigt.
Das Sticky Bit für ein Verzeichnis mit chmod 1771 setzen
In diesem Schritt widmen Sie sich einem häufigen Problem in gemeinsamen Verzeichnissen. Aktuell kann jedes Mitglied der Gruppe research jede Datei im Verzeichnis ~/project/RandD löschen, sogar Dateien, die von anderen Benutzern erstellt wurden. Das liegt daran, dass Schreibrechte auf ein Verzeichnis das Erstellen und Löschen von Dateien erlauben. Um versehentliches oder böswilliges Löschen zu verhindern, setzen Sie eine Spezialberechtigung, die als "Sticky Bit" bekannt ist.
Wenn das Sticky Bit auf ein Verzeichnis angewendet wird, ändert es dieses Verhalten. Es stellt sicher, dass eine Datei innerhalb des Verzeichnisses nur vom Eigentümer der Datei, dem Eigentümer des Verzeichnisses oder dem Root-Benutzer gelöscht oder umbenannt werden kann. Dies ist ideal für kollaborative Umgebungen wie unser RandD-Verzeichnis.
Sie verwenden den Befehl chmod mit einer vierstelligen Oktalzahl, um das Sticky Bit zu setzen. Der Befehl lautet chmod 1771 RandD.
- Die erste Ziffer
1repräsentiert das Sticky Bit. - Die folgenden drei Ziffern
771setzen die Standardberechtigungen:rwxfür den User,rwxfür die Gruppe und--xfür Andere.
Zuerst müssen Sie in das übergeordnete Verzeichnis von RandD wechseln, um dessen Berechtigungen zu ändern. Da Sie sich momentan in ~/project/RandD befinden, nutzen Sie den Befehl cd .., um eine Ebene höher nach ~/project zu gehen.
cd ..
Wenden Sie nun vom Verzeichnis ~/project aus das Sticky Bit auf das Verzeichnis RandD an.
chmod 1771 RandD
Das Sticky Bit ist nun für das Verzeichnis RandD gesetzt. Im letzten Schritt werden Sie den Befehl ls -l verwenden, um zu sehen, wie diese Spezialberechtigung dargestellt wird, und deren Effekt zu verifizieren.
Die Sticky-Bit-Berechtigung mit ls -l verifizieren
In diesem letzten Schritt überprüfen Sie, ob das Sticky Bit korrekt auf das Verzeichnis RandD angewendet wurde. Der Befehl ls -l liefert einen visuellen Indikator für Spezialberechtigungen wie das Sticky Bit. Sie sollten sich weiterhin im Verzeichnis ~/project befinden.
Geben Sie in der Shell den Befehl ls -ld RandD ein, um die Berechtigungen des Verzeichnisses selbst einzusehen.
ls -ld RandD
Untersuchen Sie die Ausgabe sorgfältig. Sie sollte etwa so aussehen:
drwxrwx--t 2 labex research 4096 Dec 12 10:45 RandD
Die entscheidende Änderung liegt in der Berechtigungszeichenfolge: drwxrwx--t.
- Das
dzeigt an, dass es ein Verzeichnis ist. rwxzeigt, dass der User (labex) volle Zugriffsrechte hat.- Das zweite
rwxzeigt, dass die Grupperesearchvolle Zugriffsrechte hat. - Der letzte Teil
--tist die Stelle, an der das Sticky Bit angezeigt wird. Dastersetzt das, was normalerweise die Ausführungsberechtigung (x) für "Andere" wäre. Ein kleingeschriebenestbedeutet, dass sowohl das Sticky Bit als auch die Ausführungsberechtigung für "Andere" gesetzt sind. Dies bestätigt, dass Ihr Befehlchmod 1771erfolgreich war.
Herzlichen Glückwunsch! Sie haben erfolgreich ein gemeinsames Verzeichnis mit sicheren Standardberechtigungen mittels umask konfiguriert und dessen Inhalte durch das Setzen des Sticky Bits vor unbefugtem Löschen geschützt.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie man ein sicheres, gemeinsames Verzeichnis für eine Benutzergruppe vorbereitet. Dies umfasste das Erstellen einer neuen Gruppe mit groupadd, das Anlegen eines Verzeichnisses sowie die Nutzung von chgrp und chmod, um die korrekte Gruppenzugehörigkeit und restriktive Berechtigungen (770) zuzuweisen. Sie haben außerdem geübt, die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse durch das Setzen eines spezifischen umask-Wertes (027) zu manipulieren, und die Wirkung überprüft, indem Sie eine neue Datei erstellt und deren Berechtigungen inspiziert haben.
Darüber hinaus haben Sie Spezialberechtigungen erkundet, indem Sie das Sticky Bit mit dem Befehl chmod 1771 auf das gemeinsame Verzeichnis angewendet haben. Sie haben gelernt, dass das Sticky Bit in kollaborativen Umgebungen unerlässlich ist, da es sicherstellt, dass Benutzer nur Dateien löschen oder umbenennen können, die ihnen persönlich gehören. Dies verhindert das versehentliche oder böswillige Entfernen der Arbeit anderer. Abschließend haben Sie die korrekte Anwendung des Sticky Bits mit ls -l verifiziert, indem Sie das t in der Berechtigungszeichenfolge des Verzeichnisses identifiziert haben.



