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.
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:
- Lesen (r): Den Inhalt der Datei ansehen
- Schreiben (w): Die Datei ändern oder löschen
- 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:
- Lesen (r): Den Inhalt des Verzeichnisses auflisten
- Schreiben (w): Dateien im Verzeichnis hinzufügen oder entfernen
- 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