Spezielle Berechtigungen und umask in Linux verwalten

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einleitung

In diesem Lab lernen Sie, wie Sie spezielle Berechtigungen und die umask-Einstellung in einer Linux-Umgebung verwalten, um einen kollaborativen Arbeitsbereich zu sichern. Sie werden untersuchen, wie Sie die Standardberechtigungen für neu erstellte Dateien steuern und wie Sie spezielle Berechtigungsbits wie das Sticky Bit verwenden, um Dateien in einem gemeinsam genutzten Verzeichnis vor dem Löschen durch andere Benutzer zu schützen.

Sie beginnen mit der Vorbereitung einer simulierten gemeinsamen Umgebung, die die Erstellung einer neuen Benutzergruppe und eines Verzeichnisses sowie die Zuweisung geeigneter Eigentümer und Berechtigungen umfasst. Anschließend ändern Sie den umask-Wert, um strengere Standardberechtigungen durchzusetzen, und überprüfen dessen Auswirkung durch die Erstellung einer neuen Datei. Abschließend setzen Sie das Sticky Bit für das gemeinsam genutzte Verzeichnis und bestätigen dessen Anwendung, um sicherzustellen, dass nur Dateibesitzer ihre eigenen Dateien in diesem gemeinsamen Bereich 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. Dies beinhaltet die Erstellung eines dedizierten Verzeichnisses, das einen gemeinsamen Arbeitsbereich für ein Forschungsteam simuliert. Sie erstellen eine neue Benutzergruppe, ein Verzeichnis und weisen ihm dann die entsprechenden Eigentümer- und Berechtigungen zu. Alle Operationen werden in Ihrem Projektverzeichnis ~/project durchgeführt.

Erstellen Sie zunächst eine neue Gruppe namens research. Diese Gruppe repräsentiert die Teammitglieder, die Zugriff auf das gemeinsam genutzte Verzeichnis haben. Verwenden Sie den Befehl sudo groupadd, um sie zu erstellen. sudo wird verwendet, da das Erstellen von Gruppen eine administrative Aufgabe ist.

sudo groupadd research

Erstellen Sie als Nächstes ein neues Verzeichnis namens RandD in Ihrem Verzeichnis ~/project. Dies wird unser Hauptarbeitsverzeichnis für dieses Lab sein.

mkdir ~/project/RandD

Ändern Sie nun den Gruppeneigentümer des neu erstellten Verzeichnisses RandD auf die Gruppe research. Der Befehl chgrp wird zu diesem Zweck 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, legen Sie dessen Berechtigungen fest. Wir verwenden den Befehl chmod mit dem numerischen Code 770. Dieser Code gewährt Lese-, Schreib- und Ausführungsberechtigungen (rwx, was 4+2+1=7 entspricht) für den Benutzer und die Gruppe und keine Berechtigungen (---, was 0 entspricht) für andere.

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 bietet ein langes Listenformat, und die Option -d listet das Verzeichnis selbst auf, nicht dessen Inhalt.

ls -ld ~/project/RandD

Sie sollten eine Ausgabe ähnlich dieser sehen, die 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

Ändern Sie schließlich Ihren aktuellen Speicherort in das Verzeichnis RandD. Hier führen Sie die Aufgaben in den folgenden Schritten aus.

cd ~/project/RandD

Sie haben nun die Arbeitsumgebung 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 von Berechtigungen zu. Oft sind diese Standardeinstellungen zu permissiv, z. B. erlauben sie "anderen" Benutzern, Ihre Dateien zu lesen. In einer sicheren Umgebung wie unserem RandD-Verzeichnis möchten wir dies einschränken.

Die umask (user file-creation mode mask) gibt die Berechtigungen an, die von den Basisberechtigungen entfernt werden sollen, wenn eine neue Datei oder ein neues Verzeichnis erstellt wird.

  • Für Dateien beträgt die Basisberechtigung 666 (rw-rw-rw-).
  • Für Verzeichnisse beträgt die Basisberechtigung 777 (rwxrwxrwx).

Wir setzen die umask auf 027. Dieser Wert weist das System an, die folgenden Berechtigungen zu entfernen:

  • Benutzer (Eigentümer): 0 - Keine Berechtigungen entfernt.
  • Gruppe: 2 - Schreibberechtigung entfernt.
  • 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-----) und jedes neue Verzeichnis die Berechtigungen 777 - 027 = 750 (rwxr-x---) erhält.

Ändern Sie zunächst die Standardberechtigungen für Ihre aktuelle Terminal-Sitzung, indem Sie umask 027 an der Shell-Eingabeaufforderung eingeben. Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/RandD befinden.

umask 027

Überprüfen Sie als Nächstes den neuen Wert von umask, indem Sie den Befehl allein eingeben.

umask

Der Befehl sollte den neuen umask-Wert anzeigen. Die führende Null zeigt an, dass keine speziellen Berechtigungen (wie das Sticky Bit, das Sie später kennenlernen werden) Teil der Maske sind.

027

Sie haben nun erfolgreich die Standardberechtigungen für die Dateierstellung für Ihre aktuelle Sitzung geändert. Im nächsten Schritt erstellen Sie eine Datei, um die Auswirkung dieser neuen umask zu beobachten.

Datei erstellen und neue umask-Berechtigungen überprüfen

In diesem Schritt setzen Sie die neue umask-Einstellung in die Praxis um, indem Sie eine Datei erstellen. Dies zeigt, wie die in den vorherigen Schritt konfigurierten Standardberechtigungen automatisch angewendet werden und Ihr neues Dokument vor unbefugtem Zugriff schützen. Sie sollten sich immer noch im Verzeichnis ~/project/RandD befinden.

Erstellen wir eine neue, leere Datei namens schedule.odt mit dem Befehl touch. Der Befehl touch ist eine einfache Möglichkeit, leere Dateien zu erstellen oder den Zeitstempel vorhandener Dateien zu aktualisieren.

touch schedule.odt

Nachdem die Datei erstellt wurde, müssen Sie ihre Berechtigungen überprüfen. Verwenden Sie den Befehl ls -l, um die detaillierten Informationen für schedule.odt anzuzeigen.

ls -l schedule.odt

Sie sehen eine Ausgabe ähnlich der folgenden. Der wichtigste Teil ist die erste Spalte, die die Dateiberechtigungen anzeigt.

-rw-r----- 1 labex research 0 Dec 12 10:35 schedule.odt

Lassen Sie uns den Berechtigungsstring -rw-r----- aufschlüsseln:

  • Das erste Zeichen - zeigt an, dass es sich um eine Datei handelt.
  • Die nächsten drei Zeichen rw- sind die Berechtigungen für den Benutzer (Eigentümer), nämlich Lesen und Schreiben. Dies entspricht dem numerischen Wert 6.
  • Die nächsten drei Zeichen r-- sind die Berechtigungen für die Gruppe, nämlich nur Lesezugriff. Dies entspricht dem numerischen Wert 4.
  • Die letzten drei Zeichen --- sind die Berechtigungen für andere, was bedeutet, dass überhaupt keine Berechtigungen vorhanden sind. Dies entspricht dem numerischen Wert 0.

Diese Berechtigungen (640) sind das direkte Ergebnis der Anwendung der umask von 027 auf die Standard-Dateiberechtigungen des Systems von 666. Die umask hat erfolgreich Schreibberechtigungen für die Gruppe und alle Berechtigungen für andere entfernt, genau wie wir es beabsichtigt hatten.

Sticky Bit auf einem Verzeichnis mit chmod 1771 setzen

In diesem Schritt befassen Sie sich mit einem häufigen Problem in gemeinsam genutzten Verzeichnissen. Derzeit kann jedes Mitglied der research-Gruppe jede Datei im Verzeichnis ~/project/RandD löschen, auch Dateien, die von anderen Benutzern erstellt wurden. Dies liegt daran, dass die Schreibberechtigung für ein Verzeichnis die Erstellung und Löschung von Dateien ermöglicht. Um versehentliches oder böswilliges Löschen zu verhindern, setzen Sie eine spezielle Berechtigung, die als "Sticky Bit" bekannt ist.

Das Sticky Bit modifiziert dieses Verhalten, wenn es auf ein Verzeichnis angewendet wird. 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 Benutzer, rwx für die Gruppe und --x für andere.

Zuerst müssen Sie sich im übergeordneten Verzeichnis von RandD befinden, um dessen Berechtigungen zu ändern. Da Sie sich derzeit in ~/project/RandD befinden, verwenden Sie den Befehl cd .., um eine Ebene nach oben zu ~/project zu wechseln.

cd ..

Wenden Sie nun vom Verzeichnis ~/project aus das Sticky Bit auf das Verzeichnis RandD an.

chmod 1771 RandD

Das Sticky Bit ist nun auf das Verzeichnis RandD gesetzt. Im letzten Schritt verwenden Sie den Befehl ls -l, um zu sehen, wie diese spezielle Berechtigung angezeigt wird und ihre Auswirkung zu überprüfen.

Sticky Bit-Berechtigung mit ls -l überprüfen

In diesem letzten Schritt überprüfen Sie, ob das Sticky Bit korrekt auf das Verzeichnis RandD angewendet wurde. Der Befehl ls -l bietet eine visuelle Anzeige für spezielle Berechtigungen wie das Sticky Bit. Sie sollten sich immer noch im Verzeichnis ~/project befinden.

Geben Sie an der Shell-Eingabeaufforderung den Befehl ls -ld RandD ein, um die Berechtigungen des Verzeichnisses selbst anzuzeigen.

ls -ld RandD

Untersuchen Sie die Ausgabe sorgfältig. Sie sollte ungefähr so aussehen:

drwxrwx--t 2 labex research 4096 Dec 12 10:45 RandD

Die wichtigste Änderung ist im Berechtigungsstring: drwxrwx--t.

  • Das d zeigt an, dass es sich um ein Verzeichnis handelt.
  • rwx zeigt an, dass der Benutzer (labex) volle Berechtigungen hat.
  • Das zweite rwx zeigt an, dass die research-Gruppe volle Berechtigungen hat.
  • Der letzte Teil, --t, ist dort, wo das Sticky Bit angezeigt wird. Das t ersetzt, was normalerweise die Ausführungsberechtigung (x) für "andere" wäre. Ein Kleinbuchstaben t zeigt an, 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 gemeinsam genutztes Verzeichnis mit sicheren Standardberechtigungen mithilfe von umask konfiguriert und dessen Inhalt durch Setzen des Sticky Bits vor unbefugtem Löschen geschützt.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man ein sicheres, gemeinsam genutztes Verzeichnis für eine Benutzergruppe vorbereitet. Dies umfasste die Erstellung einer neuen Gruppe mit groupadd, die Erstellung eines Verzeichnisses und die anschließende Verwendung von chgrp und chmod, um den korrekten Gruppenbesitz und restriktive Berechtigungen (770) zuzuweisen. Sie haben auch die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse durch Setzen eines spezifischen umask-Wertes (027) manipuliert und dessen Auswirkung durch Erstellung einer neuen Datei und Überprüfung ihrer Berechtigungen verifiziert.

Darüber hinaus haben Sie spezielle Berechtigungen erkundet, indem Sie das Sticky Bit mit dem Befehl chmod 1771 auf das gemeinsam genutzte Verzeichnis angewendet haben. Sie haben gelernt, dass das Sticky Bit für kollaborative Umgebungen unerlässlich ist, da es sicherstellt, dass Benutzer nur Dateien löschen oder umbenennen können, die sie persönlich besitzen, und so versehentliches oder böswilliges Entfernen der Arbeit anderer verhindert. Schließlich haben Sie mit ls -l überprüft, ob das Sticky Bit korrekt angewendet wurde, indem Sie das t im Berechtigungsstring des Verzeichnisses identifiziert haben.