Zugriffsrechte sind dazu da, damit mehrere Benutzer, die auf demselben Rechner arbeiten, einander nicht in die Quere kommen, und damit Unbefugte keinen Schaden an fremden Dateien oder sogar am Betriebssystem anrichten können. Die Systemverzeichnisse und -dateien des Linux-Systems sind auf diese Weise vor unerlaubten Zugriffen geschützt. Nur der Superuser (der Systemadministrator "root") kann uneingeschränkt auf alle Verzeichnisse und Dateien zugreifen. Normale Benutzer wie "meg" und "tux" können das in der Regel nicht. Ihr Wirkungskreis ist jeweils auf ihr eigenes Home-Verzeichnis begrenzt.
Mit Hilfe der Zugriffsrechte kannst Du Deine eigenen Dateien in Deinem Home-Verzeichnis vor anderen Benutzern verstecken. So kannst Du z.B. verhindern, daß jemand anders Deine neueste Homepage zu sehen kriegt, bevor sie ganz offiziell ins Netz geht... ;o)
Um die Zugriffsrechte für Verzeichnisse oder Dateien zu setzen, verwende ich den Befehl chmod ("change mode").
Dazu ein Beispiel: Wenn ich festlegen will, daß andere Benutzer meiner Gruppe die Datei datei.txt zwar lesen, aber nicht ändern dürfen, dann gebe ich die folgende Zeile ein:
meg@rutabaga:~> chmod 640 datei.txt
Die drei Ziffern hinter dem Befehl chmod enthalten eine Kurzfassung der Rechte, die ich setze.
6) legt die Rechte für den Besitzer der Datei fest. Das ist normalerweise der Benutzer, der die Datei angelegt hat.4) legt die Rechte für die Gruppe fest, zu der der Besitzer gehört. Welche Benutzer zu welchen Gruppen gehören, ist in der Konfiguration des Rechners festgelegt.0) legt die Rechte für alle anderen Benutzer fest, also für diejenigen, die nicht Mitglied in der Gruppe sind.Die folgende Liste sagt Dir, was die Ziffern genau bedeuten:
0 |
keine Rechte: darf nicht lesen, nicht schreiben und auch nicht ausführen |
1 |
lese- und schreibgeschützt: darf nur ausführen (z.B. eine Scriptdatei), aber nicht lesen und nicht schreiben |
2 |
darf nur schreiben, aber nicht lesen und nicht ausführen |
3 |
darf schreiben und ausführen, aber nicht lesen |
4 |
schreibgeschützt: darf nur lesen, aber nicht schreiben und nicht ausführen |
5 |
schreibgeschützt: darf lesen und ausführen, aber nicht schreiben |
6 |
darf lesen und schreiben, aber nicht ausführen |
7 |
alle Rechte: darf lesen, schreiben und ausführen |
Verwirrend? Keine Sorge: Ein paar typische praktische Beispiele, wie Du den Befehl chmod anwenden kannst, findest Du weiter unten im Abschnitt Dateien und Verzeichnisse schützen.
Diesen Abschnitt kannst Du auch überspringen. Er ist nicht unbedingt notwendig, um den Befehl chmod richtig anzuwenden. Er kann aber hilfreich sein, um das Thema Zugriffsrechte etwas besser zu verstehen (z.B. wenn Du Dich fragst, woher die geheimnisvollen Ziffern 0 bis 7 bei der Rechtevergabe stammen).
Um dem Ursprung der Ziffern 0 bis 7 auf die Spur zu kommen, laß Dir mit dem Befehl ls mal die ausführlichen Informationen zu einer Datei anzeigen:
meg@rutabaga:~> ls -l datei.html
-rw-rw-r-- 1 meg users 248 Jun 29 16:34 datei.html
Dem Ergebnis kannst Du unter anderem entnehmen, daß meg die Besitzerin der Datei datei.html ist, und daß sie zur Gruppe users gehört. Außerdem findest Du am Anfang der Zeile ganz links noch die Angabe -rw-rw-r--.
Das erste Zeichen (-) gibt an, daß es sich um eine Datei handelt. (Bei Verzeichnissen steht an dieser Stelle ein d für "directory".)
Danach folgen drei Dreiergruppen rw-, rw- und r--. Sie geben die genauen Zugriffsrechte der Datei an:
meg die Besitzerin der Datei.users. Alle Benutzer, die ebenfalls Mitglieder dieser Gruppe sind, haben die hier angegebenen Zugriffsrechte auf diese Datei.Jede Dreiergruppe kann grundsätzlich aus den Zeichen r ("read" = lesen), w ("write" = schreiben) und x ("execute" = ausführen) bestehen. Wenn der jeweilige Buchstabe in einer Dreiergruppe gesetzt ist, zeigt das an, daß die entsprechende Aktion erlaubt ist. Wenn statt eines Buchstabens das Zeichen - steht, dann zeigt das an, daß die entsprechende Aktion nicht erlaubt ist.
Im Beispiel oben entspricht also die Angabe -rw-rw-r-- den folgenden Zugriffsrechten:
meg hat die Rechte rw-. Sie darf die Datei also lesen (read) und ändern (write), aber nicht ausführen (execute).users haben die Rechte rw-. Sie dürfen die Datei also ebenfalls lesen (read) und ändern (write), aber nicht ausführen.r--. Sie dürfen die Datei also nur lesen (read), aber nicht ändern oder ausführen.Und woher kommen denn nun die Ziffern 0 bis 7 im Befehl chmod? Ganz einfach: Dahinter steckt eine dreistellige binäre Zahl, die in eine dezimale Zahl umgerechnet wurde. Und zwar so:
Denk Dir statt der Buchstaben rwx (= alle Rechte) die binäre Zahl 111. Das entspricht der dezimalen 7, für "alle Rechte" (siehe Liste der Ziffern). Für jeden der drei Buchstaben, die durch das Zeichen - ersetzt werden, ersetze die binäre Ziffer 1 durch eine 0. Die dreistellige binäre Zahl, die Du so erhältst, rechnest Du dann in eine dezimale Zahl um.
So wird z.B. aus der Angabe rw- (= Lese- und Schreibrecht) die binäre Zahl 110. Diese binäre Zahl entspricht der dezimalen 6 (= Lese- und Schreibrecht, siehe Liste der Ziffern). Oder, zweites Beispiel: Aus der Angabe r-- (= nur Leserecht) wird die binäre Zahl 100, und die entspricht der dezimalen 4 (= nur Leserecht, siehe Liste der Ziffern).
Um das Umrechnen der binären Zahlen in dezimale Zahlen zu vereinfachen, kannst Du Dir vorstellen, daß die Zeichenfolge rwx der Ziffernfolge 421 entspricht. Also so:
rwx
421
Jetzt addierst Du einfach die Zahlen der Rechte, die Du setzen willst. Das Ergebnis ist eine dezimale Zahl von 0 bis 7.
Fertig. Das ist schon fast zu leicht, stimmts? ;o)
Hier ein paar praktische Beispiele, wie Du die Zugriffsrechte für Dateien und Verzeichnisse festlegen kannst.
Hinweis: In den Beispielen auf dieser Seite gebe ich nach dem Befehl chmod den Befehl ls -l ein, um die neu gesetzten Rechte zu kontrollieren. (Eine kurze Beschreibung des Befehls ls (list) findest Du im Abschnitt Durch die Verzeichnisse navigieren.) Als Ergebnis werden die neu gesetzten Rechte in der Form -rw-r--r-- angezeigt (siehe Zugriffsrechte setzen (etwas technischere Erklärung)). In diesen Beispielen ist die Besitzerin der Datei immer "meg", und die Gruppe immer "users".
Berechtigungen für eine Datei setzen, so daß die Besitzerin die Datei lesen und verändern darf. Die Mitglieder der Gruppe und alle übrigen Benutzer dagegen dürfen die Datei nur lesen.
meg@rutabaga:~> chmod 644 datei.txt
meg@rutabaga:~> ls -l
-rw-r--r-- 1 meg users 5 Jun 30 13:12 datei.txt
oder mit Parameter:
-v = verbose: Meldungen für jeden Arbeitsschritt ausgeben
meg@rutabaga:~> chmod -v 644 datei.txt
Modus von datei.txt nach 0644 (rw-r--r--) geändert
Berechtigungen für eine Datei setzen, so daß die Besitzerin die Datei lesen und verändern darf. Die Mitglieder der Gruppe und alle übrigen Benutzer dagegen haben keinerlei Rechte.
meg@rutabaga:~> chmod 600 datei.txt
meg@rutabaga:~> ls -l
-rw------- 1 meg users 5 Jun 30 13:12 datei.txt
oder mit Parameter:
-v = verbose: Meldungen für jeden Arbeitsschritt ausgeben
meg@rutabaga:~> chmod -v 600 datei.txt
Modus von datei.txt nach 0600 (rw-------) geändert
Berechtigungen für ein Verzeichnis setzen, so daß die Besitzerin das Verzeichnis lesen und verändern darf. Die Mitglieder der Gruppe und alle übrigen Benutzer dagegen dürfen das Verzeichnis zwar lesen und den Inhalt ansehen, aber nichts verändern.
meg@rutabaga:~> chmod 755 ./verzeichnis/
meg@rutabaga:~> ls -l
drwxr-xr-x 2 meg users 60 Jun 30 13:12 verzeichnis
oder mit Parameter:
-v = verbose: Meldungen für jeden Arbeitsschritt ausgeben
meg@rutabaga:~> chmod -v 755 ./verzeichnis/
Modus von ./verzeichnis nach 0755 (rwxr-xr-x) geändert
Berechtigungen für ein Verzeichnis und alle darin enthaltenen Verzeichnisse und Dateien setzen, so daß die Besitzerin das Verzeichnis mit allen Unterverzeichnissen und Dateien lesen und verändern darf. Den Mitgliedern der Gruppe und allen übrigen Benutzern ist der Zugriff auf das Verzeichnis ganz verwehrt.
Parameter:
-R = rekursiv: Befehl auch auf Unterverzeichnisse und Dateien anwenden
-v = verbose: Meldungen für jeden Arbeitsschritt ausgeben)
meg@rutabaga:~> chmod -Rv 700 ./verzeichnis/
Modus von ./verzeichnis nach 0700 (rwx------) geändert
Modus von ./verzeichnis/datei.txt nach 0700 (rwx------) geändert
Text und Design © 2002 Meg Palffy & Tux J. Palffy | gebaut nach Webstandards