Hände weg von fremdem Eigentum |
»Keine Berechtigung« - nur Root darf (fast) alles |
Vielleicht hat man beim Nachvollziehen der Beispiele aus den vorangegangenen Abschnitten schon Bekanntschaft mit Ausgaben wie »permission denied« geschlossen. Wenn nicht, wechselt man z.B. ins root-Verzeichnis und versucht einmal, eine Datei in diesem anzulegen.
user@sonne> cd / user@sonne> touch example touch: example: permission denied |
Der Grund hierfür ist, dass alles (Prozesse, Dateien, Verzeichnisse...) in Linux einen Besitzer hat und dieser bestimmt, wer was damit tun und wer gefälligst was zu unterlassen hat. Ausnahme ist hier wieder einmal der Oberboss - also root -, der über alles sein Zepter schwingt und die üblichen Gesetze zu seinen Gunsten außer Kraft setzen kann. Betrachten wir drei typische Einträge aus einem Verzeichnis, so wie sie vom Kommando »ls« in Verbindung mit der Option »-l« dargestellt werden:
user@sonne> ls -l lrwxrwxrwx 1 root root 8 Aug 11 18:40 asm -> asm-i386 -rw------- 1 user users 8139 Oct 13 07:53 av2.txt drwxr-xr-x 16 user users 1024 Oct 19 21:39 tmp |
Der Typ einer Datei |
Interessant ist in obiger Ausgabe die erste Kolonne, die die jeweiligen Zugriffsrechte angibt. Das erste Zeichen gibt dabei den Typ der Datei an:
Symbol | Bedeutung |
---|---|
- | Alles, außer das Nachfolgende (»normale« Datei) |
b | Blockorientiertes Gerät (Device) |
c | Zeichenorientiertes Gerät |
d | Verzeichnis |
l | Symbolischer Link (Verweis) |
p | FIFO-Datei (named pipe) |
s | Unix domain socket |
Es existieren drei Gruppen von Rechten |
Es folgen drei Gruppen zu je drei Spalten, die die Rechte
-rwxrwxrwx | des Eigentümers, |
-rwxrwxrwx | der Gruppe und |
-rwxrwxrwx | der anderen |
(in der angegebenen Reihenfolge) bezeichnen:
Symbol | Bedeutung |
---|---|
r | Datei darf gelesen werden |
w | Datei darf geschrieben werden |
x | Datei darf ausgeführt werden (Binary, Shell-Skript) |
Theoretisch sind alle Kombinationen der Zugriffsrechte denkbar, aber der Eigentümer einer Datei darf diese immer lesen, selbst wenn das Lesebit nicht gesetzt ist. Genauso macht es wenig Sinn, eine gewöhnliche Textdatei als ausführbar zu setzen; die Shell wird damit nichts anfangen können. Ein »x« für ein Verzeichnis gibt an, dass in dieses gewechselt werden kann.
Rechte sind verbindlich |
Interessant ist auch ein Konstrukt folgender Art:
-rwx---rwx |
das angibt, dass mit der Datei alles angestellt werden kann, außer durch Nutzer derselben Gruppe. Versucht irgendjemand, der nicht der Gruppe des Eigentümers angehört, die Datei zu modifizieren, wird ihm dies gelingen, einem Gruppenmitglied bleibt dies versagt, obwohl es ja gleichzeitig ein »Anderer« ist. D.h. die Rechte der Gruppe sind verbindlicher, als die Rechte der anderen!
Zwei weitere Zugriffsrechte mit Sonderbedeutungen werden im Abschnitt Systemadministration, Zugriffsrechte beschrieben.