Ändern der Berechtigung von Ordnern und Verzeichnissen unter Linux/Unix

Nilesh Katuwal 30 Januar 2023
  1. Dateibesitz in einem Unix/Linux-System
  2. Dateiberechtigungen unter Linux anzeigen
  3. Dateiberechtigungen in einem Unix/Linux-System ändern
  4. Ändern von Gruppen und Eigentümern in Linux
  5. Ändern des Besitzbefehls in Linux
  6. Verwendung von den chmod im absoluten Modus unter Linux
Ändern der Berechtigung von Ordnern und Verzeichnissen unter Linux/Unix

Das Dateiberechtigungssystem ist eines der wesentlichen Sicherheitselemente des Linux-Betriebssystems.

Diese Funktionen ermöglichen es uns, Dateiberechtigungen und Zugriffsmodi anzupassen. Wir stellen Berechtigungen basierend auf den richtigen Berechtigungen bereit, um mögliche Schwachstellen zu vermeiden, wenn einem Benutzer nicht der entsprechende Zugriff auf Dateien und Ordner gewährt wird.

Dateibesitz in einem Unix/Linux-System

In einem Unix/Linux-System gibt es drei Eigentumsarten für Dateien und Verzeichnisse. Der zugewiesene Eigentümer der Datei hat die Berechtigung, sie basierend auf den Berechtigungen, die er erhält, zu ändern.

  • Berechtigung des Eigentümers: Die Berechtigungen des Eigentümers der Datei legen fest, welche Funktionen der Eigentümer der Datei ausführen kann. Da der Benutzer, der eine Datei erstellt, ihr Eigentümer wird, wird ein Benutzer auch als Eigentümer bezeichnet.
  • Berechtigungen nach Gruppe: Die Berechtigungen einer Gruppe bestimmen, welche Aktivitäten ein Benutzer an einer Datei ausführen kann, wenn er Mitglied dieser Gruppe ist.
  • Zusätzliche Berechtigungen: Die Berechtigungen anderer Benutzer definieren, welche Aktionen sie mit der Datei ausführen können.

Jede Datei hatte zunächst drei Zugriffsmöglichkeiten. Sie sind wie folgt:

  • Das Read (r): Damit können Sie den Inhalt der Datei abrufen, aber nicht schreiben. Es ermöglicht Ihnen, eine Liste von Dateien und Verzeichnissen zu erhalten, die in einem Verzeichnis gefunden wurden.
  • Das Write (w): Damit können Sie neue Daten zu Dateien hinzufügen oder bestehende ändern sowie Dateien und Verzeichnisse erstellen und ändern.
  • Das Execute (x): Wenn ein Programm das Execute-Flag nicht hat, kann es nicht ausgeführt werden. Diese Eigenschaft wird für alle Programme und Skripte gesetzt. Das System verwendet sie, um festzustellen, ob die Datei als Programm gestartet werden soll oder nicht.

Dateiberechtigungen unter Linux anzeigen

Natürlich können Sie unter Linux einen Dateimanager verwenden, um nach Dateiberechtigungen zu suchen. Sie alle unterstützen diese Funktionalität, aber Sie erhalten auf diese Weise Teilinformationen.

Verwenden Sie den Befehl ls mit dem Argument -l, um vollständige Details zu allen Flags zu erhalten. Alle Dateien im Verzeichnis werden zusammen mit ihren Eigenschaften und Bits angezeigt.

Führen Sie den folgenden Befehl in dem Ordner aus, in dem die Dateien gespeichert sind, um die Berechtigungen für eine Linux-Datei herauszufinden:

$ ls -l

Ich habe einen Ordner und zwei Dateien, test und testfile darin erstellt.

Ausgabe:

total 0
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

Die erste Spalte gibt die verschiedenen Zugriffsmodi oder die Berechtigungen an, die einer Datei oder einem Verzeichnis zugeordnet sind. Dann gibt es Gruppen von Rechten, zuerst für den Eigentümer, dann für die Gruppe und alle anderen.

Schauen wir uns genauer an, was die bedingten Werte der Berechtigungs-Flags bedeuten:

  • --- - überhaupt keine Rechte;
  • --x - nur Dateiausführung ist als Programm erlaubt, aber nicht ändern oder lesen;
  • -w- - nur das Schreiben und Modifizieren der Datei ist erlaubt;
  • -wx - Änderung und Ausführung zulassen, aber im Fall eines Verzeichnisses können Sie dessen Inhalt nicht anzeigen;
  • r-- - Leserechte;
  • rx - nur lesen und ausführen, kein Schreibzugriff;
  • rw- - Lese- und Schreibrechte, aber keine Ausführung;
  • rwx - alle Rechte;
  • --s - Wenn das Bit SUID oder SGID gesetzt ist, wird die SUID des Besitzers im Feld angezeigt, während die SGID der Gruppe im Feld angezeigt wird;
  • --t - Sticky-Bit ist gesetzt, was bedeutet, dass Benutzer diese Datei nicht löschen können.

Dateiberechtigungen in einem Unix/Linux-System ändern

chmod ist ein Befehl zum Ändern des Modus, der die Berechtigungen einer Datei oder eines Verzeichnisses ändert. Die zwei Möglichkeiten, chmod zu verwenden, sind der symbolische und der absolute Modus.

Verwendung von chmod im symbolischen Modus

Der symbolische Modus ist der einfachste Ansatz für einen Lernenden, um Datei- oder Verzeichnisberechtigungen anzupassen.

Mithilfe der Operatoren in der folgenden Tabelle können Sie den gewünschten Berechtigungssatz mit symbolischen Berechtigungen hinzufügen, löschen oder angeben.

chmod-Operator Bezeichnung
+ Die angegebene(n) Berechtigung(en) werden einer Datei oder einem Verzeichnis hinzugefügt.
- Entfernt die angegebene(n) Berechtigung(en) einer Datei oder eines Verzeichnisses.
= Legt die Berechtigung für die angegebenen Benutzer fest.

Schauen wir uns ein Beispiel an. Wenn Sie beim Test ls -l ausführen, sehen Sie, dass die Berechtigungen wie folgt lauten:

$ ls -l test

Ausgabe:

-rw-rw-r-- 1 user user 0 Jan 14 01:00 test

Führen Sie dann jeden der chmod-Beispielbefehle aus der vorherigen Tabelle auf dem Test aus, gefolgt von ls -l, um die Berechtigungsänderungen anzuzeigen.

$ chmod o+wx test
$ ls -l test

Dabei bezeichnet o andere Benutzer, w schreibt und x führt aus. + wird verwendet, um einer test-Datei bestimmte Berechtigungen hinzuzufügen.

Ausgabe:

-rw-rw-rwx 1 user user 0 Jan 14 01:00 test

Wir können die Unterschiede in den beiden obigen Ausgaben sehen. -rw-rw-r-- wird in -rw-rw-rwx geändert. Der obige Befehl fügte rw-Berechtigungen für andere Benutzer hinzu.

Ändern von Gruppen und Eigentümern in Linux

Wenn sie ein Konto unter Unix erstellen, erhält jeder Benutzer eine Eigentümer-ID und eine Gruppen-ID. Alle oben genannten Berechtigungen werden ebenfalls basierend auf dem Eigentümer und der Gruppe zugewiesen.

Es gibt hauptsächlich zwei Befehle zum Ändern der Gruppen und Besitzer.

  • chown: Der Befehl chown, was für change owner steht, wird verwendet, um den Besitzer einer Datei zu ändern.
  • chgrp: Der Befehl chgrp, was für change group steht, wird verwendet, um die Gruppe einer Datei zu ändern.

Die verwendeten Berechtigungsgruppen sind:

  • u – Besitzer
  • g – Gruppe
  • o – Andere
  • a – Alle Benutzer

Ändern des Besitzbefehls in Linux

Der Befehl chown wird verwendet, um den Eigentümer einer Datei zu ändern.

Das Folgende ist die grundlegende Syntax:

$ chown [name] [filename]

Als Wert des Benutzers kann der Name eines Systembenutzers oder die Benutzer-ID (UID) eines Systembenutzers verwendet werden.

Ähnlich, um den Gruppenbesitzer der Datei zu ändern:

$ chgrp [group_name] [filename]

Verwendung von den chmod im absoluten Modus unter Linux

Die Dateiberechtigungen können auch im Zahlencode geändert werden. Die entsprechenden Zahlencodes für den Zugriffsmodus lauten wie folgt:

Ziffern Zugriffsmodus
0 ---
1 -x
2 -w-
3 -wx
4 r-
5 r-x
6 rw-
7 rwx

Zum Beispiel gibt chmod 711 Dateiname dem Eigentümer alle Rechte und allen anderen Benutzern nur das Ausführungsrecht.

Schauen wir uns die Berechtigungen der Datei testfile an.

$ ls -l testfile

Ausgabe:

-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

Jetzt mit Zahlencode mit chmod.

$ chmod 711 testfile
$ ls -l testfile

Ausgabe:

-rwx--x--x 1 user user 0 Jan 14 01:00 testfile

Wie in der Ausgabe zu sehen ist, wurde die Dateiberechtigung geändert.