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

Linux-Berechtigungen ändern

Dieser Artikel beschreibt, wie Sie Berechtigungen auf einem Linux®-Cloud-Server mithilfe von chmod ändern Befehl.

Was ist der chmod-Befehl?

Einfach gesagt chmod steht für Änderungsmodus und wird verwendet, um Datei- oder Verzeichnisberechtigungen in Linux festzulegen. Root-Benutzer verwenden chmod um festzulegen, welche Benutzer, Gruppen und andere auf Dateien oder Verzeichnisse zugreifen können.

Normalerweise verwenden Sie den chmod Befehl in den folgenden Formaten:

$ chmod (options) (permissions) (file name)
$ chmod (permissions) (file name)

Die Verwendung von Optionen mit dem chmod Befehl ist optional. Das zweite Beispiel wird am häufigsten verwendet. Ohne vorhandene Option chmod ändert die Berechtigungen der im Befehl angegebenen Datei oder des Verzeichnisses.

Berechtigungen

In einem Linux-System können Sie Berechtigungen verwenden, um sich auf den Besitzer der Datei oder des Verzeichnisses (Benutzer), die Gruppe, die die Datei oder das Verzeichnis besitzt (Gruppe), oder alle anderen Personen zu beziehen, die auf die Datei oder das Verzeichnis zugreifen (Andere).

Geben Sie diese Berechtigungen an, indem Sie die folgende Notation verwenden:

  • alphanumerische Zeichen (r, w, x)
  • Oktalzahlen (0-7)

Sie haben beispielsweise eine Datei namens example.txt , und Sie möchten die folgenden Berechtigungen festlegen:

  • Der Benutzer kann die Datei lesen, schreiben und ausführen.
  • Die Gruppenmitglieder können die Datei lesen und ausführen, aber nicht schreiben.
  • Alle anderen können die Datei nur lesen.

Die folgende Befehlsoption legt Ihre gewünschten Berechtigungen für example.txt fest :

$ chmod u=rwx,g=rx,o=r example.txt

Diese Option verwendet alphanumerische Zeichen, um Benutzer anzugeben, die auf die Datei zugreifen können, sowie die Berechtigungen, die Sie für diese designierten Benutzer festlegen möchten.

  • Der Buchstabe „u“ =Benutzer
  • Der Buchstabe „g“ =Gruppe
  • Der Buchstabe „o“ =andere
  • Der Buchstabe ‚r‘ =lesen
  • Der Buchstabe ‚w‘ =schreiben
  • Der Buchstabe „x“ =ausführen

Das folgende Beispiel zeigt, wie Linux die im vorherigen Beispiel gewährten Berechtigungen darstellt:

-rwxr-xr--

Die ersten drei Buchstaben (rwx) sind die Berechtigungen des Benutzers. Die zweiten drei (r-x) stellen die Berechtigungen der Gruppe dar, und die letzten drei (r–) stellen die Berechtigungen der anderen dar.

Als nächstes haben wir die oktale Option für unsere example.txt Übung:

$ chmod 754 example.txt

In diesem Beispiel stehen die Zahlen 7, 5 und 4 jeweils für die Benutzer-, Gruppen- und andere Berechtigungen. Die erste Nummernposition bestimmt die Berechtigung des Benutzers, die zweite Nummer bestimmt die Berechtigungen der Gruppe und die dritte Nummer weist die Berechtigungen für andere zu.

Diese Zahlen sind nicht zufällig ausgewählt. Die Addition der Zahlen 4, 2, 1 und 0 bestimmt die Berechtigungen. Die Nummern haben folgende Belegung:

  • 4 steht für „lesen“
  • 2 steht für „schreiben“
  • 1 steht für „Ausführen“
  • 0 steht für „keine“

Daher wird in unserem vorherigen Beispiel die 7 aus der Kombination von Lesen (4), Schreiben (2) und Ausführen (1) bestimmt:4 + 2 + 1 =7. Die 5 ergibt sich aus der Addition von Lesen (4), none (0) und execute (1):4 + 0 + 1 =5. Schließlich ist die 4 eine Kombination aus read (4), none (0) und none (0):4 + 0 + 0 =4 .

Optionen

Normalerweise müssen Sie keine Optionen im chmod verwenden Befehl, aber falls doch, können Sie die folgenden Optionen mit chmod verwenden :

  • -c , --changes :Gibt eine ausführliche Ausgabe für vorgenommene Änderungen aus
  • -f , --silent , --quiet :Schaltet die meisten Fehlermeldungen aus
  • -v , --verbose :Gibt zu jeder verarbeiteten Aktion eine ausführliche Meldung aus
  • --no-preserve-root :Ignoriert die Referenzierung, die normalerweise standardmäßig dem / (root)-Verzeichnis gegeben wird
  • --preserve-root :Arbeitet nicht rekursiv im Verzeichnis / (Root)
  • --reference=RFILE :Legt die Berechtigungen so fest, dass sie denen von RFILE entsprechen, wobei ein bestimmter MODE ignoriert wird
  • -R , --recursive :Änderungen an Dateien oder Verzeichnissen werden rekursiv angewendet
  • --help :Zeigt die Hilfemeldung an und beendet sich dann
  • --version :Zeigt Versionsinformationen an und beendet sich dann

Extras

Zusätzlich zu den bereits besprochenen Berechtigungen ist der chmod Befehl kann drei weitere spezielle Berechtigungen in Linux setzen.

  • SUID (Benutzer-ID festlegen)
  • SGID (Gruppen-ID festlegen)
  • Sticky-Bit

SUID

Ein s im rwx des Benutzers Berechtigungssatz, der das x ersetzt , stellt diese Berechtigung dar, wie im folgenden Beispiel gezeigt:

$ chmod 4755 /usr/bin/passwd
$ ls -lh /usr/bin/passwd
-rwsr-xr-x.  1  root  root  28K  Mar  10  2020  /usr/bin/passwd

Die ersten drei Buchstaben in rwsr-xr-x stellen die Berechtigungen des Benutzers dar. Beachten Sie, dass anstelle eines x es gibt ein s in den drei Berechtigungsslots des Benutzers. Statt x anzuzeigen für execute gibt es ein s an der Ausführungsstelle. Warum ist das so?

Hinweis: Die 4 vor dem üblichen Oktal-Berechtigungssatz repräsentiert diese Berechtigung. Also statt 755 , wird die Berechtigung als 4755 geschrieben .

Sie sollten diese Option mit Vorsicht verwenden, da diese spezielle Berechtigung es einem Benutzer ermöglicht, ein Binärprogramm auszuführen, als ob er der Besitzer dieses Programms wäre, obwohl er es nicht ist. Das bekannteste Beispiel dafür ist passwd Befehl.

Im Fall von passwd , kann der Benutzer das Programm ausführen, obwohl das Binärprogramm root gehört. Da jedoch passwd standardmäßig als SUID gesetzt ist, wird es immer als Root-Benutzer ausgeführt.

Wenn ein normaler Benutzer SUID-Berechtigungen für andere Binärprogramme hat, könnte er Befehle als root ausführen, ohne root zu haben Berechtigungen. Es ermöglicht eine abnormale Eskalation von Berechtigungen, die normalerweise sudo erfordern Zugriffsrechte.

SUID-Berechtigungen können eine in das Linux-Betriebssystem integrierte Vorsichtsmaßnahme nur in Form von Binärdateien bewirken. Es wirkt sich nicht auf Skripte aus.

SGID

Ein s im rwx der Gruppe Berechtigungssatz, der das x ersetzt in t r-x Segment stellt die SGID-Berechtigung dar, wie im folgenden Beispiel gezeigt:

$ chmod 2755 /usr/bin/screen
$ ls -lh /usr/bin/screen
-rwxr-sr-x.  1  root  screen  465K  Feb  10  2020  /usr/bin/screen

Dieser s befindet sich in der zweiten Gruppe von drei Berechtigungen, von denen wir entdeckt haben, dass sie die Berechtigungen der Gruppe sind, wenn sie zuvor in alphanumerischem Stil geschrieben wurden. In der oktalen Darstellung ein 2 vor den anderen drei oktalen Berechtigungszahlen bezeichnet diese Berechtigung. Statt 755 , schreiben Sie dies als 2755 .

Wie SUID funktionieren SGID-Berechtigungen nur für Binärdateien. Sie arbeiten nicht mit Skripten. Was SGID angeht, erlaubt es unprivilegierten Gruppenmitgliedern, eine Binärdatei auszuführen, als ob sie der Root-Benutzer wären.

In der Regel können Sie diese Berechtigung für Verzeichnisse verwenden, auf die Mitglieder der Gruppe Zugriff auf das von der Gruppe freigegebene Verzeichnis haben müssen. Alle in diesem Verzeichnis erstellten Dateien haben denselben Gruppeneigentümer, unabhängig davon, welches Gruppenmitglied die Datei erstellt hat.

Sticky-Bit

Ein t im rwx der anderen Berechtigungssatz, der das x ersetzt , stellt diese Berechtigung dar, wie im folgenden Beispiel gezeigt:

$ chmod 1777 /tmp
$ ls -lhd /tmp
drwxrwxrwt.  8  root  root  4.0K  Nov  6  14:42  /tmp

Beachten Sie das t in der letzten Gruppe von drei Buchstaben. Das oktale Äquivalent von t ist eine 1 vor den drei Erlaubnisoktalen. Statt 777 , schreiben Sie dies als 1777 .

Was macht dieses klebrige Bit? Normalerweise verwenden Sie diese Berechtigung auf einem tmp Verzeichnis, und seine Funktion besteht darin, Benutzer daran zu hindern, Dateien zu löschen, die anderen Benutzern gehören. Wenn eine Gruppe Schreibzugriff auf ein Verzeichnis hat, kann normalerweise jeder Benutzer innerhalb dieser Gruppe jede Datei in diesem Verzeichnis löschen. Die Sticky-Bit-Erlaubnis stoppt das. Nur der Ersteller der Datei kann sie löschen.

Als bewährte Methode sollten Sie die Sticky-Bit-Berechtigung für alle Verzeichnisse festlegen, deren andere Berechtigung oktal 7 ist (Lesen, Schreiben, Ausführen). In unserem 754 Beispielsweise möchten Sie die Sticky-Bit-Berechtigung verwenden, wenn die Oktale 757 sind wobei 7 das dritte Oktal ist (das die Erlaubnis der anderen darstellt).

Berechtigungs-Spickzettel für Dateien und Verzeichnisse

Es folgt ein kurzer Spickzettel, der jeden Teil der Beispielausgabe erklärt:

-rwxrw-r--  rack  space  123G  Feb  03  15:36  example.txt
  • - :Der - am Anfang sagt Ihnen, dass dies eine Datei ist. Ein d am Anfang gibt ein Verzeichnis an.
  • rwx :Die ersten drei Buchstaben stellen die Berechtigungen des Dateieigentümers dar und bedeuten, dass der Eigentümer die Datei example.txt lesen, schreiben und ausführen kann.
  • rw- :Die zweiten drei Buchstaben stellen die Berechtigungen der Gruppe dar und bedeuten, dass die Gruppenmitglieder die Datei lesen und in sie schreiben können, aber sie können sie nicht ausführen.
  • r-- :Die dritten drei Buchstaben stellen die Berechtigungen der anderen dar und bedeuten, dass jeder, der nicht der Besitzer oder die Gruppe ist, die die Datei besitzt, die Datei nur lesen kann. Sie können nicht in die Datei schreiben oder die Datei ausführen.
  • rack :Der Eigentümer der Datei.
  • space :Der Gruppeneigentümer.
  • 123G :Die Größe der Datei in Gigabyte. Ein M würde Megabyte bezeichnen, und ein K würde Kilobyte bedeuten.
  • Feb 03 15:36 :Dies bezeichnet das Datum und die Uhrzeit der letzten Änderung der Datei.
  • example.txt :Der Name der Datei. Wenn Sie dies als „/example“ angeben, ist dies der Name des Verzeichnisses.

Linux
  1. Linux-Berechtigungen 101

  2. Was ist Umask unter Linux

  3. Linux-Berechtigungen:Eine Einführung in chmod

  4. So verwenden Sie den Befehl chmod (Modus ändern) unter Linux

  5. chmod:Berechtigungen des Verzeichnisses ändern Operation nicht erlaubt

So ändern Sie die Dateiberechtigungen in Linux rekursiv

So ändern Sie Berechtigungen in Linux

Chmod-Befehl unter Linux

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

Erfahren Sie, wie Sie den Befehl chmod (Modus ändern) unter Linux verwenden

Linux-Chmod-Befehlsbeispiele