GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Grundlegendes zu Linux-Dateiberechtigungen

Unter Linux steuern Dateiberechtigungen, Attribute und Eigentumsrechte die Zugriffsebene, die das System verarbeitet und Benutzer auf Dateien haben. Dadurch wird sichergestellt, dass nur autorisierte Benutzer und Prozesse auf bestimmte Dateien und Verzeichnisse zugreifen können.

Linux-Dateiberechtigungen #

Das grundlegende Linux-Berechtigungsmodell funktioniert, indem es jede Systemdatei einem Besitzer und einer Gruppe zuordnet und Zugriffsrechte für drei verschiedene Benutzerklassen zuweist:

  • Der Eigentümer der Datei.
  • Die Gruppenmitglieder.
  • Andere (alle anderen).

Der Dateibesitz kann mit chown geändert werden und chgrp Befehle.

Für jede Benutzerklasse gelten drei Arten von Dateiberechtigungen:

  • Die Leseberechtigung.
  • Die Schreibberechtigung.
  • Die Ausführungsberechtigung.

Mit diesem Konzept können Sie steuern, welche Benutzer die Datei lesen, in die Datei schreiben oder die Datei ausführen können.

Um die Dateiberechtigungen anzuzeigen, verwenden Sie ls Befehl:

ls -l file_name
-rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Das erste Zeichen gibt den Dateityp an. Es kann eine normale Datei sein (- ), Verzeichnis (d ), ein symbolischer Link (l ) oder andere spezielle Dateitypen. Die folgenden neun Zeichen stellen die Dateiberechtigungen dar, drei Triplets mit jeweils drei Zeichen. Das erste Triplett zeigt die Eigentümerberechtigungen, das zweite die Gruppenberechtigungen und das letzte Triplett zeigt die Berechtigungen aller anderen.

Im obigen Beispiel (rw-r--r-- ) bedeutet, dass der Eigentümer der Datei Lese- und Schreibrechte hat (rw- ), die Gruppe und andere haben nur Leseberechtigungen (r-- ).

Dateiberechtigungen haben je nach Dateityp eine andere Bedeutung.

Jedes der drei Berechtigungstriplets kann aus den folgenden Zeichen aufgebaut sein und unterschiedliche Wirkungen haben, je nachdem, ob sie auf eine Datei oder auf ein Verzeichnis gesetzt sind:

Auswirkung von Berechtigungen auf Dateien

Berechtigung Charakter Bedeutung in Datei
Lesen - Die Datei ist nicht lesbar. Sie können den Dateiinhalt nicht anzeigen.
r Die Datei ist lesbar.
Schreiben - Die Datei kann nicht geändert oder modifiziert werden.
w Die Datei kann geändert oder modifiziert werden.
Ausführen - Die Datei kann nicht ausgeführt werden.
x Die Datei kann ausgeführt werden.
s Falls im user gefunden Triplet, es setzt die setuid Bit. Wenn in der group gefunden Triplet, es setzt die setgid Bit. Es bedeutet auch, dass x Flag gesetzt ist.
Wenn die setuid oder setgid Flags für eine ausführbare Datei gesetzt werden, wird die Datei mit den Rechten des Eigentümers und/oder der Gruppe der Datei ausgeführt.
S Das gleiche wie s , aber das x Flag ist nicht gesetzt. Dieses Flag wird selten für Dateien verwendet.
t Falls in den others gefunden Triplet, es setzt den sticky bit.
Es bedeutet auch, dass x Flagge ist gesetzt. Dieses Flag ist für Dateien nutzlos.
T Dasselbe wie t aber das x Flag ist nicht gesetzt. Dieses Flag ist für Dateien nutzlos.

Auswirkung von Berechtigungen auf Verzeichnisse (Ordner)

Verzeichnisse sind spezielle Dateitypen, die andere Dateien und Verzeichnisse enthalten können.

Berechtigung Charakter Bedeutung im Verzeichnis
Lesen - Der Inhalt des Verzeichnisses kann nicht angezeigt werden.
r Der Inhalt des Verzeichnisses kann angezeigt werden.
(z. B. Sie können Dateien innerhalb des Verzeichnisses mit ls auflisten .)
Schreiben - Der Inhalt des Verzeichnisses kann nicht geändert werden.
w Der Inhalt des Verzeichnisses kann geändert werden.
(z. B. Sie können neue Dateien erstellen, Dateien löschen usw.)
Ausführen - Das Verzeichnis kann nicht geändert werden in.
x Das Verzeichnis kann mit cd navigiert werden .
s Falls im user gefunden Triplet, es setzt die setuid Bit. Wenn in der group gefunden Triplet setzt die setgid Bit. Es bedeutet auch, dass x Flagge ist gesetzt. Wenn die setgid Flag auf ein Verzeichnis gesetzt wird, erben die darin erstellten neuen Dateien die Verzeichnisgruppen-ID (GID) anstelle der primären Gruppen-ID des Benutzers, der die Datei erstellt hat.
setuid hat keine Auswirkung auf Verzeichnisse.
S Das gleiche wie s , aber das x Flag ist nicht gesetzt. Dieses Flag ist für Verzeichnisse nutzlos.
t Falls in den others gefunden Triplet, es setzt den sticky bit.
Es bedeutet auch, dass x Flagge ist gesetzt. Wenn das Sticky-Bit für ein Verzeichnis gesetzt ist, können nur der Eigentümer der Datei, der Eigentümer des Verzeichnisses oder der Administrator die Dateien innerhalb des Verzeichnisses löschen oder umbenennen.
T Dasselbe wie t , aber das x Flag ist nicht gesetzt. Dieses Flag ist für Verzeichnisse nutzlos.

Dateiberechtigungen ändern #

Die Dateiberechtigungen können mit chmod geändert werden Befehl. Nur root, der Dateieigentümer oder Benutzer mit sudo-Berechtigungen können die Berechtigungen einer Datei ändern. Seien Sie besonders vorsichtig, wenn Sie chmod verwenden , insbesondere wenn die Berechtigungen rekursiv geändert werden. Der Befehl kann eine oder mehrere durch Leerzeichen getrennte Dateien und/oder Verzeichnisse als Argumente akzeptieren.

Berechtigungen können im symbolischen Modus, im numerischen Modus oder in einer Referenzdatei angegeben werden.

Symbolische (Text-)Methode #

Die Syntax von chmod Der Befehl hat bei Verwendung des symbolischen Modus das folgende Format:

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

Der erste Satz von Flags ([ugoa…] ), Benutzer-Flags, definiert die Benutzerklassen, für die die Berechtigungen für die Datei geändert werden.

  • u - Der Eigentümer der Datei.
  • g - Die Benutzer, die Mitglieder der Gruppe sind.
  • o - Alle anderen Benutzer.
  • a - Alle Benutzer, identisch mit ugo .

Wenn das Flag des Benutzers weggelassen wird, ist es standardmäßig a .

Der zweite Satz von Flags ([-+=] ), die Vorgangs-Flags, definiert, ob die Berechtigungen entfernt, hinzugefügt oder gesetzt werden sollen:

  • - - Entfernt die angegebenen Berechtigungen.
  • + - Fügt bestimmte Berechtigungen hinzu.
  • = - Ändert die aktuellen Berechtigungen in die angegebenen Berechtigungen. Wenn nach dem = keine Berechtigungen erteilt werden Symbol werden alle Berechtigungen der angegebenen Benutzerklasse entfernt.

Die Berechtigungen (perms... ) werden explizit mit entweder null oder einem oder mehreren der folgenden Buchstaben festgelegt:r , w , x , X , s , und t . Verwenden Sie einen einzelnen Buchstaben aus der Menge u , g , und o beim Kopieren von Berechtigungen von einer in die Klasse eines anderen Benutzers.

Beim Festlegen von Berechtigungen für mehr als eine Benutzerklasse ([,…] ), verwenden Sie Kommas (ohne Leerzeichen), um die symbolischen Modi zu trennen.

Hier sind einige Beispiele für die Verwendung von chmod Befehl im symbolischen Modus:

  • Geben Sie den Mitgliedern der Gruppe die Berechtigung, die Datei auszuführen, aber nicht zu lesen und zu schreiben:

    chmod g=x filename
  • Entfernen Sie die Schreibberechtigung für alle Benutzer:

    chmod a-w filename
  • Entfernen Sie rekursiv die Ausführungsberechtigung für andere Benutzer:

    chmod -R o-x dirname
  • Entfernen Sie die Lese-, Schreib- und Ausführungsberechtigung für alle Benutzer außer dem Eigentümer der Datei:

    chmod og-rwx filename

    Dasselbe kann auch mit dem folgenden Formular erreicht werden:

    chmod og= filename
  • Geben Sie dem Eigentümer der Datei Lese-, Schreib- und Ausführungsberechtigungen, der Gruppe der Datei Leseberechtigungen und allen anderen Benutzern keine Berechtigungen:

    chmod u=rwx,g=r,o= filename

Numerische Methode #

Die Syntax von chmod Der Befehl hat bei Verwendung des symbolischen Modus das folgende Format:

chmod [OPTIONS] NUMBER FILE...

Wenn Sie den numerischen Modus verwenden, können Sie die Berechtigungen für alle drei Benutzerklassen (Eigentümer, Gruppe und alle anderen) gleichzeitig festlegen.

Die Berechtigungsnummer kann eine 3- oder 4-stellige Zahl sein. Wenn eine dreistellige Zahl verwendet wird, stellt die erste Ziffer die Berechtigungen des Eigentümers der Datei dar, die zweite die Gruppe der Datei und die letzte alle anderen Benutzer.

Jede Schreib-, Lese- und Ausführungsberechtigung hat den folgenden Zahlenwert:

  • r (lesen) =4
  • w (schreiben) =2
  • x (Ausführen) =1
  • keine Berechtigungen =0

Die Berechtigungsnummer einer bestimmten Benutzerklasse wird durch die Summe der Werte der Berechtigungen für diese Gruppe dargestellt.

Um die Berechtigungen der Datei im numerischen Modus herauszufinden, berechnen Sie einfach die Summen für alle Benutzerklassen. Um beispielsweise dem Eigentümer der Datei Lese-, Schreib- und Ausführungsberechtigungen, der Gruppe der Datei Lese- und Ausführungsberechtigungen und allen anderen Benutzern nur Leseberechtigungen zu erteilen, würden Sie Folgendes tun:

  • Eigentümer:rwx=4+2+1=7
  • Gruppe:r-x=4+0+1=5
  • Andere:r-x=4+0+0=4

Mit obiger Methode kommen wir auf die Zahl 754 , das die gewünschten Berechtigungen darstellt.

Um die setuid einzurichten , setgid , und sticky bit Flags, verwenden Sie eine vierstellige Zahl.

Bei Verwendung der 4-stelligen Nummer hat die erste Ziffer folgende Bedeutung:

  • setuid=4
  • setgid=2
  • sticky=1
  • keine Änderungen =0

Die nächsten drei Ziffern haben dieselbe Bedeutung wie bei der Verwendung einer dreistelligen Nummer.

Wenn die erste Ziffer 0 ist, kann sie weggelassen werden und der Modus kann mit 3 Ziffern dargestellt werden. Der numerische Modus 0755 ist dasselbe wie 755 .

Um den numerischen Modus zu berechnen, können Sie auch eine andere Methode (Binärmethode) verwenden, die jedoch etwas komplizierter ist. Zu wissen, wie man den numerischen Modus mit 4, 2 und 1 berechnet, ist für die meisten Benutzer ausreichend.

Sie können die Berechtigungen der Datei in numerischer Notation mit stat überprüfen Befehl:

stat -c "%a" file_name

Hier sind einige Beispiele für die Verwendung von chmod Befehl im numerischen Modus:

  • Geben Sie dem Eigentümer der Datei Lese- und Schreibberechtigungen und nur Leseberechtigungen für Gruppenmitglieder und alle anderen Benutzer:

    chmod 644 dirname
  • Geben Sie dem Eigentümer der Datei Lese-, Schreib- und Ausführungsberechtigungen, Lese- und Ausführungsberechtigungen für Gruppenmitglieder und keine Berechtigungen für alle anderen Benutzer:

    chmod 750 dirname
  • Geben Sie Lese-, Schreib- und Ausführungsberechtigungen und ein Sticky-Bit für ein bestimmtes Verzeichnis:

    chmod 1777 dirname
  • Setze rekursiv Lese-, Schreib- und Ausführungsberechtigungen für den Dateieigentümer und keine Berechtigungen für alle anderen Benutzer in einem bestimmten Verzeichnis:

    chmod -R 700 dirname

Schlussfolgerung #

Unter Linux wird der Zugriff auf die Dateien mithilfe von Dateiberechtigungen, Attributen und Eigentumsrechten eingeschränkt. Um die Berechtigungen der Datei zu ändern, verwenden Sie den chmod Befehl.


Linux
  1. Grundlagen der Linux-Dateiberechtigungen

  2. Linux – Alles ist eine Datei?

  3. Dateiberechtigungen unter Linux – Lesen/Schreiben/Ausführen

  4. Verstehen, wie Umask die anfänglichen Datei-/Verzeichnisberechtigungen in Linux steuert

  5. Grundlegendes zur Konfigurationsdatei /etc/profile unter Linux

Chmod-Befehl – ​​So ändern Sie Dateiberechtigungen in Linux

Prozesse unter Linux verstehen

Grundlegendes zu Linux-Dateiberechtigungen

Linux-Chmod-Befehlsbeispiele

Grundlegendes zu Linux Multipath (dm-multipath)

Grundlegende Dateiberechtigungen und Eigentumsrechte in Linux verstehen