Logo der RBI Linuxhilfe - Lektion 005: Verzeichnisse
Verzeichnisse
Bedeutung der Directoryeinträge
Ein Beispiel
Der Befehl "chmod"

Verzeichnisse
Um sich den Inhalt eines Verzeichnisses anzuschauen, geben Sie den Befehl ls "Verzeichnis" ein. Wenn Sie kein Verzeichnis hinter ls angeben, wird das aktuelle Arbeitsverzeichnis angezeigt. Hier das Beispiel-Directory /boot, welches den Linuxkernel enthält.


boot.0300 kernel.h@ map module-info@ System.map@ vmlinuz@
boot.b kernel.h-2.4.2 message module-info-2.4.2-2 System.map-2.4.2-2 vmlinuz-2.4.2-2
chain.b lost+found/ message.ja os2_d.b vmlinux-2.4.2-2*

Leider nicht sehr aussagekräftig. Um mehr Informationen zu erhalten, empfiehlt sich die Option ls -l. Normalerweise gibt es für diesen Befehl den "Alias" ll. Versuchen Sie es mal.

-rw-r--r-- 1 root root 512 May 21 21:30 boot.0300
-rw-r--r-- 1 root root 5824 Feb 23 20:33 boot.b
-rw-r--r-- 1 root root 612 Feb 23 20:33 chain.b
lrwxrwxrwx 1 root root 14 May 21 21:19 kernel.h -> kernel.h-2.4.2
-rw-r--r-- 1 root root 405 May 21 21:20 kernel.h-2.4.2
drwxr-xr-x 2 root root 12288 May 21 21:09 lost+found/
-rw------- 1 root root 15360 Jul 9 18:30 map
-rw-r--r-- 1 root root 23108 Feb 23 20:33 message
-rw-r--r-- 1 root root 21282 Feb 23 20:33 message.ja
lrwxrwxrwx 1 root root 19 May 21 21:20 module-info -> module-info-2.4.2-2
-rw-r--r-- 1 root root 13598 Apr 9 02:57 module-info-2.4.2-2
-rw-r--r-- 1 root root 640 Feb 23 20:33 os2_d.b
lrwxrwxrwx 1 root root 18 Jul 9 19:31 System.map -> System.map-2.4.2-2
-rw-r--r-- 1 root root 410990 Apr 9 02:57 System.map-2.4.2-2
-rwxr-xr-x 1 root root 2280836 Apr 9 02:57 vmlinux-2.4.2-2*
lrwxrwxrwx 1 root root 15 May 21 21:20 vmlinuz -> vmlinuz-2.4.2-2
-rw-r--r-- 1 root root 781806 Apr 9 02:57 vmlinuz-2.4.2-2

Und um alle versteckten Dateien zu sehen (z.B. alle Dateien, die mit einem . beginnen), sollten Sie ls -la eingeben.

drwxr-xr-x 3 root root 1024 Jul 9 19:31 ./
drwxr-xr-x 24 root root 4096 Jul 9 19:31 ../
-rw-r--r-- 1 root root 512 May 21 21:30 boot.0300
-rw-r--r-- 1 root root 5824 Feb 23 20:33 boot.b
-rw-r--r-- 1 root root 612 Feb 23 20:33 chain.b
lrwxrwxrwx 1 root root 14 May 21 21:19 kernel.h -> kernel.h-2.4.2
-rw-r--r-- 1 root root 405 May 21 21:20 kernel.h-2.4.2
drwxr-xr-x 2 root root 12288 May 21 21:09 lost+found/
-rw------- 1 root root 15360 Jul 9 18:30 map
-rw-r--r-- 1 root root 23108 Feb 23 20:33 message
-rw-r--r-- 1 root root 21282 Feb 23 20:33 message.ja
lrwxrwxrwx 1 root root 19 May 21 21:20 module-info -> module-info-2.4.2-2
-rw-r--r-- 1 root root 13598 Apr 9 02:57 module-info-2.4.2-2
-rw-r--r-- 1 root root 640 Feb 23 20:33 os2_d.b
lrwxrwxrwx 1 root root 18 Jul 9 19:31 System.map -> System.map-2.4.2-2
-rw-r--r-- 1 root root 410990 Apr 9 02:57 System.map-2.4.2-2
-rwxr-xr-x 1 root root 2280836 Apr 9 02:57 vmlinux-2.4.2-2*
lrwxrwxrwx 1 root root 15 May 21 21:20 vmlinuz -> vmlinuz-2.4.2-2
-rw-r--r-- 1 root root 781806 Apr 9 02:57 vmlinuz-2.4.2-2


Bedeutung der Directoryeinträge
Wenn Sie die ersten 10 Zeichen betrachten, werden Sie recht schnell ein einfaches Muster erkennen. Das erste Zeichen überhaupt gibt den Typ der Datei an. Dabei steht "d" für Directory, "l" für Link und ein "-" für eine normale Datei. Es gibt noch zahlreiche spezielle Dateitypen, die sollen fürs erste jedoch nicht interessieren.
Danach folgen drei Dreierblöcke, welche die Zugriffsrechte regeln. Der erste Dreierblock steht dabei für den Benutzer (User = u) selbst (also Sie), der zweite Block beschreibt die Gruppenrechte (Group = g) und der dritte Block regelt den Zugriff der übrigen Welt (Others = o). Jeder Block besteht aus drei Flags, welche gesetzt sein können. Das sind im Einzelnen r (read = lesen), w (write = schreiben) und x (execute = ausführen). Der "User" sollte normalerweise alles können, weswegen oft die ersten drei rwx gesetzt sind. Zumindest Schreiben sollte man allen anderen verbieten. Bei Directorys muß das x-Flag gesetzt sein, damit der entsprechende Benutzer in das Verzeichnis wechseln darf. Wenn Sie also nicht wollen, daß irgendjemand ihre Dateien liest oder ausführt (von Schreiben ganz zu Schweigen), sollten die Berechtigungen einer Datei etwa so aussehen wie für die Datei "map" im oberen Beispiel (rw- --- ---).
Der nächste Eintrag ist weniger wichtig, danach kommt der Name des Besitzers der Datei (hier immer root) und dann die Gruppe (auch root). Der nächste Eintrag ist eine Zahl, welche die Größe der Datei in Bytes angibt. Dann folgt das Datum und anschließend der Name der Datei bzw. einige Sonderfälle ("Links"), welche später erklärt werden.

Ein Beispiel
Machen wir uns an die Arbeit. Erzeugen Sie in ihrem Heimatverzeichnis eine Datei namens test. Also zuerst in das Verzeichnis wechseln (wie, steht in der vorherigen Lektion) und dann eine Datei namens test mittels der Methode Ihrer Wahl erzeugen. Wollen Sie eine schnelle Methode kennenlernen? Geben Sie einfach touch test ein, damit wird eine 0-Byte große Datei erzeugt. Sollte die Datei bereits existieren, kein Problem, dann hat sie jetzt nur ein aktuelles Datum. Merke: Der Befehl touch ist perfekt, um einer Datei den jetzigen Timestamp (Zeitstempel) zu geben. Mit ls -l test zeigen wir uns jetzt nur diese Datei an, womit wir bereits wieder etwas lernen, denn wir können ls gezielt Dateinamen mitgeben.

-rw-r--r-- 1 erps rbi 0 Jul 11 17:49 test

So sieht der Eintrag für mich aus, bei Ihnen könnte er variieren, z.B. könnte überall das x-Flag zusätzlich gesetzt sein.

-rwxr-xr-x 1 erps rbi 0 Jul 11 17:49 test

Derzeit kann ich ("erps") diese Datei lesen, meine Gruppe ("rbi") kann das auch und die Welt leider ebenfalls. Sie wurde am 11. Juli um 17 Uhr 49 erzeugt und hat eine Größe von 0 Bytes. Ich möchte aber, daß niemand außer mir diese Datei auch nur schräg anschauen kann. Mein Ziel ist also:

-rw------- 1 erps rbi 0 Jul 11 17:49 test

Dazu benötige ich den Befehl chmod, welcher die Rechte einer Datei, die mir gehört, neu setzen kann. Mit chmod go-rx test kann ich den gewünschten Eintrag erzeugen. Wie sieht das Format aus?

Der Befehl "chmod"
Format: chmod "Optionen" "Maske" "Dateiname"
Der Dateiname kann eine Datei oder ein Verzeichnis sein. Optionen sind Steuerbefehle, welche zum Beispiel rekursives Abarbeiten aller Dateien eines Verzeichnisses und aller Unterverzeichnisse ermöglichen (-R), dazu später mehr. Die Maske regelt die neuen Zugriffsrechte nach einem einfachen Prinzip: Für die drei Gruppen gibt es die Kürzel ugo (user, group, others), dann "+" (erlauben) oder "-" (verbieten) und zuletzt rwx (wie bisher).
Möchten Sie ihre Datei für die Welt lesbar machen, müssen Sie chmod o+r test eingeben. Wollen Sie alle Zugriffe verbieten, geben Sie einfach chmod ugo-rwx test ein. Keine Angst! Als Besitzer der Datei können Sie die Rechte immer noch ändern, auch wenn Sie die Datei jetzt weder lesen noch beschreiben können. Geben Sie jetzt chmod u+rwx test und anschließend chmod g+rx test ein, dann können wenigstens Ihre Gruppenmitglieder die Datei lesen und ausführen. Ich denke, Sie werden sich mit den Möglichkeiten schon vertraut machen.
Irgendwann wird es Sie nerven, daß Sie bei einer Datei nicht mit einem Befehl einerseits Rechte setzen, andererseits Rechte wegnehmen können (+ und - sind nicht kombinierbar). Es gibt jedoch eine Kurzform, z.B.: chmod 644 test. Was geschieht hier? Ganz einfach, jede der drei Ziffern steht für die Rechte der einzelnen Benutzertypen, also die erste Ziffer (6) für den User, die zweite Ziffer (4) für die Gruppe und die dritte Ziffer (4) für die Anderen. Jede einzelne Ziffer ist eine Kodierung der Rechte, wobei r den Wert 4 hat, w den Wert 2 und x den Wert 1. Eine 6 bedeutet also, daß der Benutzer lesen und schreiben kann (4+2), zumindest was diese Datei betrifft :)
chmod 777 test setzt somit alle Rechte für alle. chmod 000 test blockiert alle Rechte. Die wichtigsten Kürzel sind chmod 644 und chmod 755, denn sie erlauben nur dem Besitzer das Schreibrecht auf Dateien.



[Vorherige Lektion: Lektion 004] [Lektionen: Hauptmenü] [Nächste Lektion: Lektion 006]
[Home] [Suchen] [Aktuelles] [FAQ] [Programme] [Dokumentation] [Service] [Sprachen] [Text] [Links] [Linux] [RBI] [Kummerkasten]
Letzte Änderungen: erps, 8.10.2001

      

      

Impressum