Unix / Linux - Datei Berechtigungen / Zugriffsmodi

Hallo da draußen, angehende Programmierer! Heute tauchen wir in die faszinierende Welt der Unix- und Linux-Dateiberechtigungen ein. Keine Sorge, wenn Sie neu hier sind; bis zum Ende dieses Tutorials werden Sie ein Profi in Dateiberechtigungen sein! Lassen Sie uns gemeinsam diese aufregende Reise antreten.

Unix / Linux - File Permission

Die Berechtigungsindikatoren

Stellen Sie sich vor, Sie sind der Wächter eines Schatzes. Sie müssen entscheiden, wer es öffnen, wer Dinge hineinlegen und wer Dinge herausnehmen darf. Genau darum geht es bei Dateiberechtigungen in Unix und Linux!

Wenn Sie Dateien mit dem Befehl ls -l auflisten, werden Sie etwas wie dies sehen:

-rwxr-xr-x 1 john users 2048 Jan 15 2023 myfile.txt

Lassen Sie uns diese geheimnisvollen Buchstaben am Anfang entschlüsseln:

  • Das erste Zeichen gibt die Dateitype an (- für reguläre Datei, d für Verzeichnis)
  • Die nächsten 9 Zeichen darstellen die Berechtigungen für Benutzer, Gruppe und Andere

Hier ist eine praktische Tabelle, um sich zu merken, was jeder Buchstabe bedeutet:

Buchstabe Bedeutung
r Leseberechtigung
w Schreibberechtigung
x Ausführberechtigung
- Keine Berechtigung

Dateizugriffsmodi

Nun sprechen wir darüber, was diese Berechtigungen mit Dateien tatsächlich erlauben:

  1. Lesen (r): Den Inhalt der Datei ansehen
  2. Schreiben (w): Die Datei ändern oder löschen
  3. Ausführen (x): Die Datei als Programm oder Skript ausführen

Hier ist eine unterhaltsame Methode, sich zu merken: Denken Sie an "r" als "rezept lesen", "w" als "rezept schreiben" und "x" als "rezept ausführen" (Gericht kochen)!

Verzeichniszugriffsmodi

Verzeichnisse haben ähnliche Berechtigungen, aber sie funktionieren ein bisschen anders:

  1. Lesen (r): Den Inhalt des Verzeichnisses auflisten
  2. Schreiben (w): Dateien im Verzeichnis hinzufügen oder entfernen
  3. Ausführen (x): Das Verzeichnis und seinen Inhalt betreten

Stellen Sie sich ein Verzeichnis als einen Raum vor. "r" lässt Sie hineinsehen, "w" lässt Sie Möbel hinzufügen oder entfernen und "x" lässt Sie den Raum betreten.

Ändern von Berechtigungen

Nun, da wir Berechtigungen verstehen, lernen wir, wie man sie ändert! Wir verwenden den Befehl chmod dafür. Es gibt zwei Möglichkeiten, chmod zu verwenden: symbolischer Modus und absoluter Modus.

Symbolischer Modus

Dies ist so, als ob man Anweisungen gibt, Berechtigungen hinzuzufügen oder zu entfernen. Hier ist die grundlegende Syntax:

chmod [wer][+,-,=][berechtigungen] dateiname
  • wer kann u (Benutzer), g (Gruppe), o (Andere) oder a (Alle) sein
  • + fügt Berechtigung hinzu, - entfernt sie, = setzt sie exakt
  • berechtigungen sind r, w oder x

Zum Beispiel:

chmod u+x myfile.txt

Dies fügt die Ausführberechtigung für den Benutzer hinzu.

Verwenden von chmod mit Absoluten Berechtigungen

Der absolute Modus verwendet Zahlen, um Berechtigungen zu setzen. Jede Berechtigung hat einen Wert:

  • r = 4
  • w = 2
  • x = 1

Wir addieren diese für jede Kategorie (Benutzer, Gruppe, Andere). Hier ist eine Tabelle, um Ihnen zu helfen, dies zu verstehen:

Nummer Berechtigung
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

Zum Beispiel:

chmod 755 myfile.txt

Dies setzt rwx für den Benutzer und rx für Gruppe und Andere.

Ändern von Eigentümern und Gruppen

Manchmal müssen Sie den Eigentümer einer Datei oder die Gruppe, der sie gehört, ändern. Sehen wir uns an, wie man das macht.

Ändern des Eigentümers

Um den Eigentümer einer Datei zu ändern, verwenden wir den Befehl chown:

chown neuerbesitzer dateiname

Zum Beispiel:

chown alice myfile.txt

Dies ändert den Eigentümer von myfile.txt in alice.

Ändern der Gruppenzugehörigkeit

Um die Gruppe zu ändern, verwenden wir den Befehl chgrp:

chgrp neuegruppe dateiname

Zum Beispiel:

chgrp developers myfile.txt

Dies ändert die Gruppe von myfile.txt in developers.

SUID und SGID Dateiberechtigungen

Nun sprechen wir über einige spezielle Berechtigungen: SUID (Set User ID) und SGID (Set Group ID). Diese sind wie Superkräfte für Dateien!

  • SUID: Wenn auf eine ausführbare Datei gesetzt, wird sie mit den Berechtigungen des Eigentümers ausgeführt.
  • SGID: Wenn auf eine ausführbare Datei gesetzt, wird sie mit den Berechtigungen der Gruppe ausgeführt.

Um diese zu setzen, verwenden wir chmod mit einer speziellen Zahl:

chmod 4755 myfile    # SUID setzen
chmod 2755 myfile    # SGID setzen

Die 4 am Anfang setzt SUID, und 2 setzt SGID.

Und das war's! Sie sind jetzt gut vertraut mit der Welt der Unix/Linux-Dateiberechtigungen. Denken Sie daran, mit großer Macht kommt große Verantwortung. Verwenden Sie diese Berechtigungen klug, um Ihre Dateien sicher und geschützt zu halten.

Übung macht den Meister, also haben Sie keine Angst, zu experimentieren (natürlich in einer sicheren Umgebung). Bevor Sie es wissen, werden Sie Dateiberechtigungen wie ein Profi verwalten!

Credits: Image by storyset