Linux-Kurs – Teil 5 (Rechte)
Es hat lange gedauert, bis ich mit dem fünften Teil dieses kleinen Linux-Kurses auf Basis einer Debian-Installation angefangen habe. In Zukunft soll es nun wieder regelmäßig Kurs-Beiträge geben. Ich möchte nicht zu viel versprechen. Aus diesem Grund werden die einzelnen Sektionen bzw. Beiträge immer etwas kürzer gehalten. Dadurch sind sie schneller zu lesen und für mich ist der Aufwand besser verteilt.
Falls Du Neueinsteiger bei diesem Linux-Einsteiger-Kurs bist, dann kannst Du ab dem ersten Teil durchstarten oder Dir eine Übersicht aller Beiträge ansehen.
Heute möchte es etwas auf die Rechte von Linux eingehen.
Ein paar allgemeine Worte zur Sicherheit
Wenn wir schon beim Thema Rechte sind, dann muss ich in diesem Absatz kurz abschweifen und zwar über Sicherheit!
Wie im dritten Teil gelernt, solltest Du Dich immer mit Deinem eigenen Arbeitsbenutzer anmelden. In meinem Beispielen ist dies der User tom.
Der Benutzer root ist böse! Verwende ihn nur, wenn es notwendig ist. Viele sind hier von der jahrelangen Verwendung von Windows etwas versaut. Unter Windows ist es ja völlig “normal”, immer und überall alle Rechte (z.B. eigener Benutzer in Gruppe Administratoren) zu haben. Unter Linux arbeitet man mit seinem normalen User und schaltet sich nur zum root hoch, wenn dieser für die entsprechende Aufgabe benötigt wird. An sich, wäre dies auch bei Windows so schon seit einigen Jahren möglich und durchaus im Sinne des Erfinders Microsoft. Auf meinem Windows-Notebook habe ich selbst nur normale Benutzerrechte. Falls eine Tätigkeit mehr Rechte benötigt kommt eine entsprechende Benutzeranforderung (ich verwende Windows 7) oder ich führe die Anwendung explizit mit einem Admin-User aus.
Allgemein möchte ich auch behaupten, dass Linux-User etwas mehr auf Sicherheit achten. Ich möchte nicht behaupten, dass dies an Linux selbst liegt. Vielleicht vielmehr daran, warum Linux eingesetzt wird bzw. warum jemand zu Linux wechselt oder es für sich entdeckt hat. Bitte gewöhnt Euch das gleich an (und bei Windows entsprechend um).
In meinem Berufsleben sehe ich oft diese schreckliche Angewohnheit, dass extra die Einstellungen der SSH-Konfiguration bei z.B. Vmware ESX angepasst werden, um sich von remote als Root anmelden zu können. Warum wird nicht einfach ein User für die Remote-Anmeldung erstellt, man loggt sich mit diesem an und schaltet sich dann zum Root hoch?
Was möchte ich damit ausdrücken: Sicherheit ist oftmals keine Frage des Systems. Nicht Windows ist grundsätzlich unsicher und Linux sicher. Es ist vielmehr der Administrator und der User schuld, wenn ein System unsicher ist bzw. wird.
Du hast Dich entschieden diesen kleinen Kurs bei mir zu lesen, um etwas zu lernen. Bitte nimm als eine der wichtigsten Hinweise oder Tipps zum Thema Sicherheit mit, sich immer Gedanken zu machen, ob das gerade durchgeführte aus dem Blickwinkel der Sicherheit wirklich Sinn macht!
Dies war mein Wort zum Sonntag und nun zum eigentlichen Thema. ;-)
Vorbereitung
Wie gerade von mir gepredigt, logge Dich als normaler User ein (und nicht als root). In meinem Fall nennt sich dieser Benutzer tom. Achtung! Auch bei den Benutzern gilt bei Linux die Unterscheidung zwischen Groß- und Kleinschreibung.
Du solltest Dich in Deinem Home-Verzeichniss befinden, ansonsten mit cd ~ wechseln. Falls von einem alten Kursbeitrag noch das Verzeichnis Test existieret, löschen wir dieses nun:
rm -r ~/test
Wir legen nun ein neues Testverzeichnis an und gehen in das Verzeichnis:
mkdir ~/test cd ~/test
Nun legen wir mal drei Dateien an:
touch datei1 touch datei2 touch datei3
Nun haben wir drei leere Dateien mit dem Namen datei1, datei2 und datei3 angelegt.
Was bedeuten die einzelnen Werte von ls -l?
Lass uns mal unser Verzeichnis mit den drei Dateien mit ein paar Zusatzinformationen anzeigen. Ich verwende dazu meistens diesen Befehl:
ls -lh
Wie schon gelernt entspricht der Befehl ls dem dir von Dos. Der Parameter -l steht für List und zeigt das Verzeichnis in erweiterter Listenform mit mehr Informationen an. Durch -h werden Kapazitätsanzeigen “human” angezeigt und somit für den Menschen leichter zu lesen (Umrechnung der Bytes in KB, MB, etc.). Dies macht bei 0-Byte-Dateien gerade keinen Sinn, aber Du sollst Dich gleich mal an den Parameter gewöhnen. :-)
So sieht das Ergebnis aus:
tom@debian:~/test$ ls -lh total 0 -rw-r--r-- 1 tom tom 0 2009-12-13 14:49 datei1 -rw-r--r-- 1 tom tom 0 2009-12-13 14:49 datei2 -rw-r--r-- 1 tom tom 0 2009-12-13 14:49 datei3
Lass uns mal von rechts nach links anfangen, damit wir am Ende nur noch die Informationen zu den Dateirechten haben.
Ganz rechts findest Du natürlich den Dateinamen. In unserem Fall z.B. datei1. Wie schon gelernt ist sind dabei datei1, Datei1 oder DaTei1 und DateI1 unterschiedliche Dateien.
Danach kommt die Uhrzeit, gefolgt vom Datum. Beim Datum wird je nach Distribution oder Parameter auch manchmal heute bzw. today oder eine entsprechende Bezeichnung angezeigt.
Die Zahl 0 zwischen tom und dem Datum zeigt die Größe der Datei an. In unserem Fall handelt es sich um eine leere Datei und somit wird 0 Bytes angezeigt.
Was ist dieses “rw-r–r–” ?
Bleiben also folgende Informationen übrig:
-rw-r--r-- 1 tom tom
Die Zahl in der Mitte zeigt die Anzahl der Hardlinks auf die Datei an. Dies werden wir uns vielleicht in einem späteren Teil mal genauer ansehen.
Was somit übrig ist, ist der erste Block -rw-r--r-- und die Angabe zum Benutzer und der Gruppe. Dabei steht in meinem Fall tom tom. Das erste tom steht für den Besitzer der Datei bzw. die Person, welche Rechte auf die Datei als Eigentümer hat. Die zweite Angabe ist die Gruppe, welche Rechte auf die Datei oder einem Verzeichnis hat.
Nun zu den Angaben auf der ganz linken Seite. Diese zeigt die Rechte auf die Datei oder dem Verzeichnis an und ist in drei Blöcke unterteilt.
Eigentümer, Gruppe und alle anderen
Dabei steht jeder Buchstabe für ein bestimmtes Recht:
- r (read = lesen) – Der Benutzer kann den Inhalt der Datei einsehen, d. h. unter anderem, er kann sie am Bildschirm anzeigen lassen, sie drucken oder kopieren.
- w (write = schreiben) – Der Benutzer kann die Datei verändert unter dem bisherigen Namen speichern.
- x (execute = ausführen) – Die Datei kann als Programm gestartet werden. Dies setzt natürlich voraus, dass die Datei ein Programm ist.
In unserem Fall von -rw-r--r-- bedeutet dies:
Der Benutzer tom darf die Datei datei1 lesen und verändern, alle Benutzer der Gruppe tom dürfen nur lesen, alle anderen Benutzer dürfen auch die Datei lesen.
Verzeichnisrechte
Wir wechseln in unser Home und betrachten das Verzeichnis test mal genauer:
cd ~ ls -lh
Als Ergenis sieht Du in etwa diese Ausgabe:
tom@debian:~$ ls -l total 4 drwxr-xr-x 2 tom tom 4096 2009-12-13 15:04 test
Hier sehen wir einen neue Buchstaben aus dem Rechte-Alphabet und das x in einer anderen Bedeutung:
- d (directory = Verzeichnis) – Zeig an, dass es sich um ein Verzeichnis und nicht um eine Datei handelt.
- x (execute = ausführen) – Im Gegensatz zur Information, dass eine Datei ausgeführt werden kann und es sich somit um ein Programm handelt, steht das x bei einem Verzeichnis für den Zugriff auf darauf.
Unser x ist als bei einem Verzeichnis das Recht, überhaupt in das Verzeichnis wechseln zu dürfen. Sozusagen wie eine Tür zu einem Raum. Hat man dieses Recht nicht, darf man nicht in das jeweilige Verzeichnis wechseln. Hätte ich das Recht rw auf ein Verzeichnis, aber nicht x, so könnte ich nicht reingehen, es aber löschen.
Und nochmals was zum Thema Sicherheit
Vielleicht noch ein Wort zum dritten Block der Rechte. Hier steht in unserem Beispiel r-x. Somit darf jeder Benutzer, in das Verzeichnis wechseln. Darauf solltest Du immer achten! Ein Beispiel:
ls -l /home
Die Ausgabe:
tom@debian:~$ ls -l /home total 20 drwx------ 2 root root 16384 2009-04-19 14:07 lost+found drwxr-xr-x 3 tom tom 4096 2009-12-13 15:48 tom
Wenn man bei z.B. Debian nichts an der Konfiguration verändert, werden die Home-Verzeichnisse wie oben angezeigt erstellt. Somit darf jeder andere Benutzer in mein persönliches Verzeichnis wechseln und meine Dateien ansehen!
Möchte ich dies? Oftmals nicht. Das nur zum oberen Thema Sicherheit. Deshalb auch der Spruch: “Ein Root-Server ist eine Waffe”. Wenn jemand ohne Erfahrung sich auf einem physikalischen oder virtuellen Server sein eigenes Linux als Webserver installiert und dann noch mehrere Kunden darauf zugreifen können, dann kann so eine “Kleinigkeit” schon ganz schönen Ärger machen!
Du kannst Dich nun mit dem Befehl cd und ls -l durch das Dateisystem bewegen und Dir mal die verschiedenen Dateien und Verzeichnisse genauer ansehen.
Im nächsten Teil, werde ich tiefer in die Rechte eingehen und erklären, wie diese angepasst und verändert werden können.
Eine Übersicht aller Teile findest Du hier. Falls Fragen, Fehlerkorrekturen oder Anregungen bestehen, dann einfach die Kommentarfunktion verwenden.
Interessante Beiträge zu diesem Thema
- sysvconfig – Runlevel Editor
- Update auf Debian 5.0 (Lenny)
- Linux-Einsteiger-Kurs mittels Debian Linux – Teil 1
- Linux-Einsteiger-Kurs – Teil 2 (Debian Grundinstallation)
- Interessante Links

[...] fünften Teil gab es einen Einstieg in die Dateisystemrechte. In diesem Beitrag werden wir nun weitere darauf [...]
Nicht wundern. Ich habe die Kurstitel der aktuellen Beiträge von “Linux-Einsteiger-Kurs” auf “Linux-Kurs” geändert, damit diese im Titel schöner dargestellt werden. Ist aber immer noch ein Einsteiger-Kurs… :-)
[...] wir uns im fünften und sechsten Teil ein wenig in die Rechte eines Linux-System eingearbeitet haben, werden wir heute [...]