Linux ist als Multiuser-System konzipiert und benötigt daher Mechanismen, die steuern, wer auf welche Dateien zugreifen kann, wer sie ändern darf etc.
Mit jeder Datei bzw. mit jedem Verzeichnis werden folgende Informationen gespeichert:
owner) der Dateirwxrwxrwx für read / write / execute für den Besitzer, für alle Gruppenmitglieder und für den Rest der Welt)
Der Besitzer (owner) einer Datei ist in der Regel die Person, die die Datei erzeugt hat. Als Gruppe wird normalerweise die primäre Gruppe des Besitzers verwendet.
Die Zugriffsinformationen r, w und x steuern, wer die Datei lesen, schreiben (verändern) und ausführen darf. Diese Informationen werden getrennt für den Besitzer, für die Gruppe und für alle anderen Benutzer gespeichert. Das ermöglicht es, dem Besitzer mehr Rechte zu geben als anderen Benutzern. Die Informationen werden meist Zugriffsbits genannt, weil sie intern als Zahl gespeichert werden.
Die Zugriffsbits, der Besitzer sowie die Gruppenzugehörigkeit einer Datei können mit ls -l betrachtet werden.
| Recht | Datei | Verzeichnis |
|---|---|---|
| r (read) | Datei lesen | Inhalt des Verzeichnisses anzeigen (ls) |
| w (write) | Datei verändern | Dateien im Verzeichnis anlegen/löschen |
| x (execute) | Datei ausführen | Verzeichnis betreten (cd) |
Jedes Zugriffsrecht hat einen Zahlenwert:
Die Werte werden addiert:
| Wert | Bedeutung |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Beispiel:
chmod 755 dateiname
Bedeutung:
Alternativ können Rechte symbolisch geändert werden:
| Beispiel | Bedeutung |
|---|---|
| chmod u+x datei | Ausführrecht für Besitzer hinzufügen |
| chmod g-w datei | Schreibrecht der Gruppe entfernen |
| chmod o+r datei | Leserecht für andere hinzufügen |
| chmod a+r datei | Leserecht für alle hinzufügen |
| chmod u=rwx,g=rx,o= datei | Rechte explizit setzen |
Bedeutung der Buchstaben:
| chmod -R 755 ordner | setzt Rechte rekursiv für Ordner und Unterordner |
| chown -R user:gruppe ordner | ändert Besitzer und Gruppe rekursiv |
| Kommando | Beschreibung |
|---|---|
| chmod | Ändern der Dateirechte |
| chmod 640 dateiname | Ändert die Dateirechte auf _rw_ r _ |
| chown benutzer datei | Ändert den Eigentümer |
| chown benutzer:gruppe datei | Ändert Eigentümer und Gruppe |
| chgrp gruppe datei | Ändert nur die Gruppe |
| id benutzer | Zeigt UID und Gruppenzugehörigkeit |
| groups benutzer | Zeigt Gruppen eines Benutzers |
Neben den normalen Zugriffsrechten gibt es zusätzliche Bits:
| Bit | Bedeutung |
|---|---|
| SetUID (4xxx) | Programm läuft mit Rechten des Besitzers |
| SetGID (2xxx) | Programm läuft mit Gruppenrechten |
| Sticky Bit (1xxx) | Nur Besitzer darf Dateien im Verzeichnis löschen (z.B. /tmp) |
Beispiel:
chmod 4755 programm
→ SetUID ist gesetzt.
Die umask bestimmt die Standardrechte beim Erstellen neuer Dateien.
| umask | zeigt aktuelle Maske |
| umask 022 | setzt Standardmaske |
Beispiel:
| Dateiattribute | Anzahl der Links auf eine Datei | Besitzer der Datei | Benutzergruppe | Dateigröße | Datum | Verzeichnis |
| drwxr-xr-x | 3 | petra | gruppe5b | 454 | … | … |
Erklärung von drwxr-xr-x: