Linux Rechte verstehen (Dateiart / Dateityp und Zugriffsrechte)

von Thomas


Erstellt am 03.01.2018


Linux

In diesem Artikel möchte ich euch die Linux Rechte näher bringen. Ich werde auf die unterschiedlichen Dateiarten, bzw. Dateitypen und die Zugriffsrechte eingehen. Ebenfalls werde ich den Befehl chmod erleutern.


Zuerst wollen wir uns mal ein Beispiel von Informationen einer Datei anschauen. Am besten eignet sich dafür der Befehl ls, mit der Option -l (long).

ls -l

-rwxr--r-- 1 user users 41 3. Jan 14:31 beispiel

Die Ausgabe kann unter verschiedenen Distributionen abweichen.

Die Dateiart (Dateityp)

Ganz links, beim ersten Zeichen (in unserem Beispiel befindet sich ein Minuszeichen -) wird die Dateiart angegeben. Folgende Angaben können sich hier befinden:

Zeichen Bedeutung (Dateiart)
- normale Datei
d Verzeichnis (d=directory)
p Named Pipe; steht für eine Art Pufferungsdatei, eine Pipe-Datei
c (c = character oriented) steht für eine zeichenorientierte Gerätedatei
b (b = block oriented) steht für eine blockorientierte Gerätedatei
s (s = socket) steht für einen Socket (UNIX-Domainsocket)
l Symbolischer Link

Zugriffsrechte

Die nächsten neun Zeichen, bzw. Minusse beschreiben die Zugriffsrechte. Sie sind in drei Dreiergruppen (rwx) aufgeteilt, was von links nach rechts für Eigentümer, Gruppe und 'alle anderen' steht. Folgende Tabelle zeigt die Möglichkeiten:

Darstellung in ls Bedeutung
[r--------] read (user, Leserechte für den Eigentümer)
[-w-------] write (user, Schreibrechte für den Eigentümer)
[--x------] execute (user, Ausführrechte für den Eigentümer)
[rwx------] read, write, execute (user, Lese-, Schreib- und Ausführungsrechte für den Eigentümer)
[---r-----] read (user, Leserechte für den Eigentümer)
[----w----] write (user, Schreibrechte für den Eigentümer)
[-----x---] execute (user, Ausführrechte für den Eigentümer)
[---rwx---] read, write, execute (user, Lese-, Schreib- und Ausführungsrechte für den Eigentümer)
[------r--] read (user, Leserechte für den Eigentümer)
[-------w-] write (user, Schreibrechte für den Eigentümer)
[--------x] execute (user, Ausführrechte für den Eigentümer)
[------rwx] read,wirte, execute (user, Lese-, Schreib- und Ausführungsrechte für den Eigentümer)

Und was hat das Alles nun mit chmod 777 oder 755 auf sich?

Lesen = 4 , denn 4 im Dualsystem ist 0100
Schreiben = 2 , denn 2 im Dualsystem ist 0010
Ausführen = 1 , denn 1 im Dualsystem ist 0001

Wenn man nun das Recht zu Lesen und zu Schreiben haben möchte, addiert man einfach Lesen (4 , 0100) + Schreiben (2 , 0010) = 6! (0110)

Hier sind die Zahlen wieder in die Dreiergruppe aufgeteilt, der Eigentümer bezieht sich auf die erste Ziffer, die Gruppe die zweite Ziffer und allen anderen ist die letzte Ziffer bestimmt.
Möchte man nun z.B. allen nur das Recht zum Lesen geben, aber dem Eigentümer auch das Recht zum Schreiben, kommt man auf den Befehl chmod 644, denn:

6 (Eigentümer) = Lesen (4) + Schreiben (2)
4 (Gruppe) = Lesen (4)
4 (alle Anderen) = Lesen (4)