Eine Einführung in Linux-Berechtigungen

Einführung

Linux ist ein Mehrbenutzer-Betriebssystem, das auf den Unix-Konzeptenfile ownership undpermissions basiert, um Sicherheit auf Dateisystemebene zu bieten. Wenn Sie vorhaben, Ihre Linux-Kenntnisse zu verbessern, ist es wichtig, dass Sie ein gutes Verständnis für die Funktionsweise von Eigentumsrechten und Berechtigungen haben. Es gibt viele Schwierigkeiten beim Umgang mit Dateibesitz und Berechtigungen, aber wir werden unser Bestes geben, um die Konzepte auf die Details zu beschränken, die für ein grundlegendes Verständnis ihrer Funktionsweise erforderlich sind.

In diesem Tutorial erfahren Sie, wie Sie den Besitz und die Berechtigungen von Linux anzeigen und verstehen. Wenn Sie nach einem Tutorial zum Ändern von Berechtigungen suchen, lesen Sie dieses Handbuch:Linux Permissions Basics and How to Use Umask on a VPS

Voraussetzungen

Stellen Sie sicher, dass Sie die Konzepte verstehen, die in den vorherigen Lernprogrammen in dieser Reihe behandelt wurden:

Der Zugriff auf einen Linux-Server ist nicht unbedingt erforderlich, um dieses Tutorial zu befolgen. Wenn Sie jedoch einen verwenden, können Sie Erfahrungen aus erster Hand sammeln. Wenn Sie eine einrichten möchten, rufen Siecheck out this link an, um Hilfe zu erhalten.

Über Benutzer

Wie in der Einführung erwähnt, ist Linux ein Mehrbenutzersystem. Wir müssen die Grundlagen von Linuxusers undgroups verstehen, bevor wir über Besitz und Berechtigungen sprechen können, da dies die Entitäten sind, für die der Besitz und die Berechtigungen gelten. Beginnen wir mit den Grundlagen der Benutzer.

Unter Linux gibt es zwei Arten von Benutzern:system users undregular users. Herkömmlicherweise werden Systembenutzer verwendet, um nicht interaktive Prozesse oder Hintergrundprozesse auf einem System auszuführen, während reguläre Benutzer zum interaktiven Anmelden und Ausführen von Prozessen verwendet werden. Wenn Sie sich zum ersten Mal bei einem Linux-System anmelden, bemerken Sie möglicherweise, dass es mit vielen Systembenutzern beginnt, die die Dienste ausführen, von denen das Betriebssystem abhängig ist. Dies ist völlig normal.

Eine einfache Möglichkeit, alle Benutzer auf einem System anzuzeigen, besteht darin, den Inhalt der/etc/passwd-Datei anzuzeigen. Jede Zeile in dieser Datei enthält Informationen zu einem einzelnen Benutzer, beginnend mituser name (dem Namen vor den ersten:). Drucken Sie diepasswd-Datei mit diesem Befehl:

cat /etc/passwd

Superuser

Zusätzlich zu den beiden Benutzertypen gibt es den Benutzersuperuser oderroot, der alle Dateibesitzungs- und Berechtigungsbeschränkungen überschreiben kann. In der Praxis bedeutet dies, dass der Superuser die Rechte hat, auf irgendetwas auf seinem eigenen Server zuzugreifen. Dieser Benutzer wird für systemweite Änderungen verwendet und muss sicher aufbewahrt werden.

Es ist auch möglich, andere Benutzerkonten mit der Möglichkeit zu konfigurieren, "Superuser-Rechte" zu übernehmen. Tatsächlich wird das Erstellen eines normalen Benutzers mitsudo-Berechtigungen für Systemverwaltungsaufgaben als bewährte Methode angesehen.

Über Gruppen

Gruppen sind Sammlungen von null oder mehr Benutzern. Ein Benutzer gehört zu einer Standardgruppe und kann auch Mitglied einer beliebigen anderen Gruppe auf einem Server sein.

Eine einfache Möglichkeit, alle Gruppen und ihre Mitglieder anzuzeigen, besteht darin, in der Datei/etc/groupauf einem Server nachzuschauen. In diesem Artikel wird die Gruppenverwaltung nicht behandelt. Sie können diesen Befehl jedoch ausführen, wenn Sie neugierig auf Ihre Gruppen sind:

cat /etc/group

Nachdem Sie nun wissen, was Benutzer und Gruppen sind, wollen wir uns mit dem Besitz und den Berechtigungen von Dateien befassen.

Anzeigen von Eigentumsrechten und Berechtigungen

Unter Linux gehört jede einzelne Datei einem einzelnen Benutzer und einer einzelnen Gruppe und verfügt über eigene Zugriffsberechtigungen. Schauen wir uns an, wie Sie den Besitz und die Berechtigungen einer Datei anzeigen.

Die gebräuchlichste Methode zum Anzeigen der Berechtigungen einer Datei ist die Verwendung vonls mit der Option für lange Listen, z. ls -l myfile. Wenn Sie die Berechtigungen aller Dateien in Ihrem aktuellen Verzeichnis anzeigen möchten, führen Sie den Befehl ohne Argument wie folgt aus:

ls -l

Hint: Wenn Sie sich in einem leeren Ausgangsverzeichnis befinden und noch keine Dateien zum Anzeigen erstellt haben, können Sie den Inhalt des Verzeichnisses/etc auflisten, indem Sie den folgenden Befehl ausführen:ls -l /etc) s

Hier ist ein Beispiel-Screenshot, wie die Ausgabe aussehen könnte, mit Beschriftungen für jede Ausgabespalte:

ls -l

Beachten Sie, dass für jede Datei der Modus (der Berechtigungen enthält), der Eigentümer, die Gruppe und der Name aufgelistet sind. Abgesehen von der SpalteMode ist diese Auflistung ziemlich einfach zu verstehen. Um zu erklären, was all diese Buchstaben und Bindestriche bedeuten, teilen wir die SpalteModein ihre Komponenten auf.

Modus verstehen

Schauen Sie sich diese Nahaufnahme dermode der ersten Datei im obigen Beispiel an, um zu erklären, was alle Gruppierungen und Buchstaben bedeuten:

Mode and permissions breakdown

Dateityp

Unter Linux gibt es zwei grundlegende Dateitypen:normal undspecial. Der Dateityp wird durch das erste Zeichen dermode einer Datei angegeben. In diesem Handbuch wird dies alsfile type field bezeichnet.

Normale Dateien können durch Dateien mit einem Bindestrich (-) in ihren Dateitypfeldern identifiziert werden. Normale Dateien sind nur einfache Dateien, die Daten enthalten können. Sie werden als normale oder reguläre Dateien bezeichnet, um sie von speziellen Dateien zu unterscheiden.

Spezielle Dateien können anhand von Dateien identifiziert werden, deren Dateitypfelder keinen Bindestrich (z. B. einen Buchstaben) enthalten und die vom Betriebssystem anders behandelt werden als normale Dateien. Das im Feld Dateityp angezeigte Zeichen gibt an, um welche Art von Spezialdatei es sich bei einer bestimmten Datei handelt. Beispielsweise wird ein Verzeichnis, bei dem es sich um die häufigste Art von Sonderdateien handelt, durch das Zeichendidentifiziert, das in seinem Dateitypfeld angezeigt wird (wie im vorherigen Screenshot). Es gibt verschiedene andere Arten von Spezialdateien, aber sie sind nicht wesentlich für das, was wir hier lernen.

Berechtigungsklassen

Aus dem Diagramm wissen wir, dass die SpalteModeden Dateityp angibt, gefolgt von drei Triaden oder Klassen von Berechtigungen: Benutzer (Eigentümer), Gruppe und andere. Die Reihenfolge der Klassen ist für alle Linux-Distributionen gleich.

Schauen wir uns an, welche Benutzer zu den einzelnen Berechtigungsklassen gehören:

  • User: Dieowner einer Datei gehören zu dieser Klasse

  • Group: Die Mitglieder der Dateigruppe gehören zu dieser Klasse

  • Other: Alle Benutzer, die nicht Teil der Klassenuser odergroup sind, gehören zu dieser Klasse.

Symbolische Berechtigungen lesen

Das nächste, worauf Sie achten sollten, sind die Sätze von drei Zeichen oder Triaden, da sie symbolisch die Berechtigungen bezeichnen, die jede Klasse für eine bestimmte Datei hat.

In jeder Triade werden Lese-, Schreib- und Ausführungsberechtigungen folgendermaßen dargestellt:

  • Read: Wird durch einr an der ersten Position angezeigt

  • Write: Wird durchw an zweiter Stelle angezeigt

  • Execute: Wird durch einx an dritter Stelle angezeigt. In einigen Sonderfällen kann hier ein anderer Charakter vorkommen

Ein Bindestrich (-) anstelle eines dieser Zeichen zeigt an, dass die entsprechende Berechtigung für die jeweilige Klasse nicht verfügbar ist. Wenn beispielsweise diegroup-Triade für eine Dateir-- ist, ist die Datei für die Gruppe, die der Datei zugeordnet ist, schreibgeschützt.

Grundlegendes zu Lesen, Schreiben und Ausführen

Nachdem Sie nun wissen, wie Sie die Berechtigungen einer Datei lesen können, möchten Sie wahrscheinlich wissen, was die einzelnen Berechtigungen den Benutzern tatsächlich erlauben. Wir werden jede Berechtigung einzeln erläutern, bedenken jedoch, dass sie häufig in Kombination miteinander verwendet werden, um einen aussagekräftigen Zugriff auf Dateien und Verzeichnisse zu ermöglichen.

Hier ist eine kurze Aufschlüsselung des Zugriffs, den die drei grundlegenden Berechtigungstypen einem Benutzer gewähren.

Read

Mit der Leseberechtigung für eine normale Datei kann ein Benutzer den Inhalt der Datei anzeigen.

Mit der Leseberechtigung für ein Verzeichnis kann ein Benutzer die Namen der Datei im Verzeichnis anzeigen.

Schreiben

Bei einer normalen Datei kann ein Benutzer die Datei mit Schreibrechten ändern und löschen.

Mit der Schreibberechtigung für ein Verzeichnis kann ein Benutzer das Verzeichnis löschen, seinen Inhalt ändern (Dateien darin erstellen, löschen und umbenennen) und den Inhalt von Dateien ändern, die der Benutzer lesen kann.

Ausführen

Mit der Ausführungsberechtigung für eine normale Datei kann ein Benutzer eine Datei ausführen (der Benutzer muss auch über eine Leseberechtigung verfügen). Daher müssen Ausführungsberechtigungen für ausführbare Programme und Shell-Skripten festgelegt werden, bevor ein Benutzer sie ausführen kann.

Für ein Verzeichnis ermöglicht die Ausführungsberechtigung einem Benutzer den Zugriff auf (d. H. cd) und greifen auf Metadaten zu Dateien im Verzeichnis zu (die Informationen, die inls -l aufgeführt sind).

Beispiele für Modi (und Berechtigungen)

Nachdem wir nun wissen, wie der Modus einer Datei gelesen und die Bedeutung jeder Berechtigung verstanden wird, werden wir einige Beispiele für gängige Modi mit kurzen Erklärungen vorstellen, um die Konzepte zusammenzuführen.

  • -rw-------: Eine Datei, auf die nur der Eigentümer zugreifen kann

  • -rwxr-xr-x: Eine Datei, die von jedem Benutzer im System ausgeführt werden kann. Eine "weltweit ausführbare" Datei

  • -rw-rw-rw-: Eine Datei, die von jedem Benutzer im System geändert werden kann. Eine "Welt beschreibbare" Datei

  • drwxr-xr-x: Ein Verzeichnis, auf das jeder Benutzer im System lesen und zugreifen kann

  • drwxrwx---: Ein Verzeichnis, das von seinem Eigentümer und seiner Gruppe geändert werden kann (einschließlich seines Inhalts)

  • drwxr-x---: Ein Verzeichnis, auf das seine Gruppe zugreifen kann

Wie Sie vielleicht bemerkt haben, hat der Eigentümer einer Datei im Vergleich zu den beiden anderen Klassen normalerweise die meisten Berechtigungen. In der Regel werden Sie feststellen, dass die Klassengroup undothernur eine Teilmenge der Berechtigungen des Eigentümers haben (gleichwertig oder weniger). Dies ist sinnvoll, da auf Dateien nur Benutzer zugreifen dürfen, die aus einem bestimmten Grund Zugriff darauf benötigen.

Zu beachten ist auch, dass zwar viele Berechtigungskombinationen möglich sind, in den meisten Situationen jedoch nur bestimmte sinnvoll sind. Beispielsweise wird der Zugriff vonwrite oderexecutefast immer vonread Zugriff begleitet, da es schwierig ist, etwas zu ändern und unmöglich auszuführen, das Sie nicht lesen können.

Eigentümer und Berechtigungen ändern

Um dieses Tutorial einfach zu halten, wird hier nicht erläutert, wie Sie den Dateibesitz und die Berechtigungen ändern. In diesem Handbuch erfahren Sie, wie Siechown,chgrp undchmod verwenden, um diese Aufgaben auszuführen:Linux Permissions Basics and How to Use Umask on a VPS.

Fazit

Sie sollten jetzt ein gutes Verständnis dafür haben, wie Besitzrechte und Berechtigungen unter Linux funktionieren. Wenn Sie mehr über Linux-Grundlagen erfahren möchten, wird dringend empfohlen, das nächste Tutorial in dieser Reihe zu lesen: