Rechteverwaltung unter Linux.

In diesem kleinen Artikel möchte ich Ihnen die Rechteverwaltung von Linux ein wenig näher bringen.

Ich tippe den Befehl „ls -la“ in die Shell ein und erhalte diese Ausgabe:
test@ubuntu:~$ ls -l
insgesamt 4


lrwxrwxrwx 1 test test 26 2008-09-08 19:42 Examples -> /usr/share/example-content
-rw-r--r-- 1 test test 0 2008-09-08 19:42 Nettiquette
drwxr-xr-x 2 test test 4096 2008-09-08 19:44 test

Jetzt nehmen wir das mal ein bisschen auseinander:
lrwxrwxrwx 1 test test 26 2008-09-08 19:42 Examples -> /usr/share/example-content

Links seht ihr die Rechte dieser Datei, welche folgende sind: lesen, schreiben und ausführen und das für jede mögliche „Person“ auf dem System.
Es gibt folgende Arten von möglichen „Personen“ auf einem System:
Eigentümer, Gruppe, Alle anderen

Ihr fragt euch jetzt sicher wie man die Rechte abliest.
Hier ein Beispiel:
Das sind unsere Rechte:
lrwxrwxrwx -> Das „l“ ist für uns irrelevant da es nur beschreibt was es für ein Dateityp ist (In diesem Fall ist es ein „Softlink“) Das heißt wir können es entfernen -> rwxrwxrwx das bleibt dann noch über -> Diese Segmente können wir jetzt auseinander Bröseln -> rwx rwx rwx -> Es sind immer 3 Zeichen sollte ein Recht nicht gesetzt sein z.B. „w“ dann würde es so aussehen rwxr-x-r-x oder r-xr-xr-x
Das ist alles schön und gut aber was heißt das?

r Lesen (read)
w Schreiben (write)
x Ausführen (execute)

Jetzt können wir so eine Zeile rwxrwxrwx lesen und verstehen!

Wenn sie schon ein wenig Erfahrung mit Linux haben wissen Sie das Linux alles als Datei behandelt. Es gibt aber trotzdem Unterschiede zwischen den einzelnen Typen! Das wird bei den Rechte sehr schnell deutlich:

Unterschiede zwischen Ordnern und Verzeichnissen:

Recht Bedeutung für Datei Bedeutung für Ordner
r Inhalt lesen Ordner Inhalt auflisten
w Datei Bearbeiten Datei löschen, umbenennen und erstellen
x Datei ausführen In das Verzeichnis wechseln (via cd)

Diese Unterschiede sind wichtig und die sollten Sie sich einprägen!

Bevor wir dazu kommen wie man Rechte vergibt beschäftigen wir uns erstmal mit der Frage wie man den Eigentümer ändert.

Um den Eigentümer zu ändern gibt es den Befehl „chown“ er hat die folgende Syntax:
chown <user>:<group> <Datei>

Wenn sie nur den Eigentümer ändern wollen geben sie folgendes ein:
chown test test.txt
Wenn nur die Gruppe geändert werden soll folgendes:
chown :testgroup test.txt
Wenn die Gruppe des neuen Eigentümer übernommen werden soll dies:
chown test: test.txt

Die Auswirkungen die dadurch entstehen sind folgende:
Eine Datei hat folgende Rechte:
-rw-r–r– 1 test1 test1 0 2008-09-08 19:42 Nettiquette
Wir können die Recht jetzt auslesen:
Der Besizter darf Lesen und schreiben.
Die Gruppe darf lesen.
Der Rest darf auch nur lesen.

Wenn wir unser Augenmerk jetzt auf hinter die 1 richten (Diese 1 gibt an wie viele Verweise in dem System zu dieser Datei existieren) sehen wir dort „test1“ und noch mal „test1“ stehen.
Das erste „test1“ steht für den Besitzer welcher „test1“ heißt.
Das zweite „test1“ steht für die Gruppe welche auch „test1“ heißt.

Wenn wir nun den Besitzer „test“ diese Datei mit chown tester Nettiquette überschreiben sieht es so aus:
-rw-r--r-- 1 tester test1 0 2008-09-08 19:42 Nettiquette

Wir sehen die Rechte haben sich nicht verändert nur der Besitzer.

Das heißt wir können den Besitzer ändern und die Rechte bleiben erhalten.

Damit ist dieser Teil abgeschlossen

Kommen wir nun zur Vergabe von Rechten.

Es gibt 2 Wege Rechte zu vergeben einmal die „Oktave Schreibweise“ und eine mit Buchstaben.
Wir behandeln hier beide Sie können dann entscheiden welche sie besser finden.

Die Buchstaben Schreibweise geht so:
chmod u+r test.txt
chmod g+rw test.txt
chmod o+r test.txt

Das u steht für „User“ also Eigentümer.
Das g steht für „Gruppe“.
Das o steht für „Other“.

Mit dem Plus erlauben wir es dem Eigentümer „u“ eine Datei zu lesen. Das heißt wenn die rechte vorher so waren:
-wx——
Sind sie danach so:
rwx——

Wie Sie sehen können bleiben die anderen Rechte davon unberührt!

Es geht auch andersherum dazu müssen wir das + durch ein – ersetzen:
chmod u-r test.txt
rwx—— -> -wx——

Was die anderen beiden Befehle die oben steht also „g+r etc“ bewirken sollte nun klar sein, wenn nicht den Abschnitt noch mal lesen. 😉

Man kann auch das +/- durch ein = ersetzen dann würde aus:
chmod u=r test.txt
rwx—— -> r——–

Abschließend zu dieser Schreibweise noch einige Syntax-hinweise:
Wenn man Rechte für mehrere „Personen (Eigentümer,Gruppe,Other)“ mit einem Befehl ändern will muss man dies mit einem Komma trennen:
chmod u+r,g+r-x,o=rwx test.txt

Damit habe ich direkt eine weitere Sache gezeigt, wenn man einer Datei die Rechte „lesen,ausführen“ geben will muss man chmod u+r-x test.txt schreiben oder beim wegenehmen chmod u-r-x test.txt

Ich denke es sollte klar sein.

Wir kommen zur Oktaven Schreibweise!

Oktave hat was mit Zahlen zu tun. Hier ist es auch so

Bei der Oktaven Schreibweise gibt es 3 Zahlen:

4 r (read)
2 w (write)
1 x (execute)

Um diese jetzt einzusetzen werden die Werte addiert. Das heißt wenn eine Datei gelesen und geschrieben werden soll von allen dann sieht es so aus:
r-w = 4+2 = 6
Der passende Befehl:
chmod 666 test.txt

Sie müssen immer alle 3 Personen angeben! Da alle Rechte überschrieben werden! Die Reihen folgende ist übrigens wie immer (Eigentümer,Gruppe,Alle Anderen)

Eine kleine Übersicht über Mögliche Kombinationen:

0 — (kein Recht)
1 –x (ausführen only)
2 -w- (nur schreiben)
3 -wx (nur schreiben und ausführen)
4 r– (nur lesen)
5 r-x (lesen und ausführen)
6 rw- (lesen und schreiben)
7 rwx (lesen, schreiben und ausführen)

Ein Beispiel:
Ich möchte dass der Eigentümer die Datei lesen, schreiben und ausführen kann. Die Gruppe soll nur lesen und ausführen dürfen. Der Rest darf das gleiche.

Daraus ergibt sich folgender Befehl:
chmod 755 test.txt

7 = 4 + 2 +1 = r + w + x
5 = 4 + 1 = r + x

Damit sollten sie Fit sein in Sachen Rechteverwaltung 🙂

Ich hoffe der Artikel war verständlich, bei Fragen oder Fehlern bitte einen Kommentar da lassen 🙂

4 Gedanken zu „Rechteverwaltung unter Linux.

  1. Toni

    Danke für den tollen Artikel. Lerne gerade für meine Betriebssysteme Klausur und hier ist es wirklich gut und verständlich erklärt. *Thumbs Up*

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.