Spezialberechtigungen und umask in Linux verwalten

LinuxBeginner
Jetzt üben

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 Wert 6.
  • Die folgenden drei Zeichen r-- sind die Berechtigungen für die Gruppe, also nur Lesen. Dies entspricht dem numerischen Wert 4.
  • Die letzten drei Zeichen --- sind die Berechtigungen für Andere, was bedeutet, dass keinerlei Rechte bestehen. Dies entspricht dem numerischen Wert 0.

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 1 repräsentiert das Sticky Bit.
  • Die folgenden drei Ziffern 771 setzen die Standardberechtigungen: rwx für den User, rwx für die Gruppe und --x fü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 d zeigt an, dass es ein Verzeichnis ist.
  • rwx zeigt, dass der User (labex) volle Zugriffsrechte hat.
  • Das zweite rwx zeigt, dass die Gruppe research volle Zugriffsrechte hat.
  • Der letzte Teil --t ist die Stelle, an der das Sticky Bit angezeigt wird. Das t ersetzt das, was normalerweise die Ausführungsberechtigung (x) für "Andere" wäre. Ein kleingeschriebenes t bedeutet, dass sowohl das Sticky Bit als auch die Ausführungsberechtigung für "Andere" gesetzt sind. Dies bestätigt, dass Ihr Befehl chmod 1771 erfolgreich 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.