Berechtigungen
In Linux ist die Verwaltung von Berechtigungen entscheidend für die Sicherheit und den reibungslosen Betrieb des Systems. Jedes Dateisystemobjekt (Dateien, Verzeichnisse, Geräte etc.) hat Berechtigungen, die festlegen, welche Aktion von welchem Benutzer oder welcher Benutzergruppe durchgeführt werden kann.
Grundlegende Berechtigungstypen
In Linux gibt es drei grundlegende Arten von Berechtigungen:
- 1. Lesen (
r
fürread
): Erlaubt das Lesen des Inhalts einer Datei oder das Auflisten des Inhalts eines Verzeichnisses. - 2. Schreiben (
w
fürwrite
): Erlaubt das Ändern des Inhalts einer Datei oder das Hinzufügen/Entfernen von Dateien in einem Verzeichnis. - 3. Ausführen (
x
fürexecute
): Erlaubt das Ausführen einer Datei (z.B. eines Skripts oder Programms) oder den Zugriff auf ein Verzeichnis (z.B. das Betreten eines Verzeichnisses).
Benutzerklassen
Die Berechtigungen werden in drei Benutzerklassen festgelegt:
- 1. Besitzer (
user
): Der Benutzer, dem die Datei gehört. - 2. Gruppe (
group
): Eine Gruppe von Benutzern, die gemeinsam Rechte an der Datei haben. - 3. Andere (
others
): Alle anderen Benutzer, die weder der Besitzer noch Mitglieder der Gruppe sind.
Darstellung von Berechtigungen
Die Berechtigungen in Linux werden in einem bestimmten Format angezeigt, wenn man den Befehl ls -l
ausführt. Ein typisches Beispiel sieht folgendermaßen aus:
-rwxr-xr--
Diese Darstellung wird wie folgt aufgeschlüsselt:
- Erstes Zeichen: Zeigt den Dateityp an.
-
: Normale Dateid
: Verzeichnisl
: Symbolischer Link
- Die nächsten drei Zeichen (
rwx
): Berechtigungen für den Besitzer. - Die nächsten drei Zeichen (
r-x
): Berechtigungen für die Gruppe. - Die letzten drei Zeichen (
r—
): Berechtigungen für andere.
Berechtigungen setzen und ändern
Um Berechtigungen zu setzen oder zu ändern, verwendet man den Befehl chmod
.
Symbolische Notation
Man kann Berechtigungen symbolisch setzen:
chmod u+x datei.txt
Fügt das Ausführungsrecht (x
) für den Besitzer (u
) hinzu.
chmod g-w datei.txt
Entfernt das Schreibrecht (w
) für die Gruppe (g
).
chmod o+r datei.txt
Fügt das Leserecht (r
) für andere (o
) hinzu.
Oktale Notation
Alternativ kann man die Berechtigungen mit einer Oktalzahl festlegen. Diese Zahl ist eine Kombination aus den folgenden Werten:
- 4: Für Lesen (
r
) - 2: Für Schreiben (
w
) - 1: Für Ausführen (
x
)
Diese Zahlen werden für den Besitzer, die Gruppe und andere kombiniert:
chmod 755 datei.txt
Das obige Beispiel bedeutet:
- Besitzer:
rwx
(4 + 2 + 1 = 7) - Gruppe:
r-x
(4 + 0 + 1 = 5) - Andere:
r-x
(4 + 0 + 1 = 5)
Erweiterte Berechtigungen
Neben den Standardberechtigungen gibt es auch erweiterte Berechtigungen, wie das Setzen des SUID (Set User ID), SGID (Set Group ID) und Sticky-Bit.
SUID (s
auf die Besitzerrechte)
Wenn bei einer ausführbaren Datei das SUID-Bit gesetzt ist, wird das Programm mit den Rechten des Dateibesitzers ausgeführt, nicht mit denen des ausführenden Besitzers. Dies ist wichtig für Programme, die bestimmte administrative Aufgaben ausführen müssen.
chmod u+s programm
Das Beispiel setzt das SUID-Bit.
SGID (s
auf die Gruppenrechte)
Wenn das SGID-Bit auf einem Verzeichnis gesetzt ist, werden alle neu erstellten Dateien in diesem Verzeichnis der gleichen Gruppe zugeordnet wie das Verzeichnis, nicht wie die Gruppe des Benutzers, der die Datei erstellt.
chmod g+s verzeichnis
Das Beispiel setzt das SGID-Bit.
Sticky-Bit (t
auf die Berechtigungen für andere)
Wenn das Sticky-Bit auf einem Verzeichnis gesetzt ist, können Dateien in diesem Verzeichnis nur vom Besitzer der Datei oder vom Root-Benutzer gelöscht oder umbenannt werden, selbst wenn andere Schreibrechte für das Verzeichnis haben.
chmod +t /tmp
Das Beispiel setzt das Sticky-Bit auf das /tmp
Verzeichnis, was oft als Sicherheitsmaßnahme verwendet wird.