chmod/Zugriffsrechte unter Unix
Gelesen bei AboutWebDesign.de
URL: http://www.aboutwebdesign.de/awd/content/1004271660.shtml
Wer CGI-Scripts installieren will, kommt fast immer zu dem Punkt, an dem Dateiberechtigungen mit Hilfe des chmod-Kommandos geändert werden müssen. Praktischerweise funktioniert das auch via FTP. Wer sich danach sein FTP-Log ansieht, findet eine Zeile "chmod xxx datei.name".
Grundlagen
Was bedeutet das? Hier kann ein wenig technischer Background nicht schaden.
Unix und Linux sind MultiUser-Betriebssysteme. Soll heißen: das Betriebssystem ist von Anfang an darauf ausgerichtet, mehrere Benutzer zu verwalten. Logischerweise sollte ein Benutzer nicht auf die Dateien eines anderen Benutzers zugreifen können, denn die sind da privat.
Daher gibt es unter Unix/Linux das System der Dateiberechtigungen: es wird genau festgelegt, wer eine Datei lesen, schreiben und ausführen darf. Dabei sind mögliche Benutzer in drei Gruppen unterteilt: Eigentümer (also der User, dem die Datei gehört), Gruppe (andere Benutzer, aber in der gleichen Gruppe wie der Eigentümer) und Andere (alle anderen User).
Es kann also festgelegt werden, was jede dieser drei Benutzergruppen darf - und was sie nicht darf.
Synatx von chmod
Der chmod-Befehl tut genau das. Wer ihn am Prompt verwenden will, verwendet die Syntax chmod zugriffsrechte datei.
Interessant daran ist, wie der zugriffsrechte-Teil des Befehls aufgebaut ist. Entweder, die Zugriffsrechte werden in einer Zahl kodiert, oder sie werden etwas ausführlicher in Klartext formuliert.
Oktalvariation
Wer FTP verwendet, sieht meistens die erste Variante, also die Codierung der Zugriffsrechte in einer dreistelligen (Oktal-)Zahl. Dabei steht jede Ziffer für eine Benutzergruppe: die erste Ziffer legt die Berechtigungen des Eigentümers fest, die zweite die der Gruppe und die dritte die der anderen Benutzer.
Die Ziffern selbst werden nach einem simplen Additionsschema festgelegt: jeder Dateioperation ist eine Zahl zugeordnet. Die Zahlen aller erlaubten Dateioperationen werden addiert, heraus kommt die besagte Ziffer.
Das Recht "Ausführen" wird durch eine 1 repräsentiert, "Schreiben" durch eine 2 und "Lesen" durch eine 4. Wer einem Benutzer also Lese- und Schreibrechte geben will, verwendet die Ziffer 6 (2+4).
Bitte beachten Sie, dass Sie diese Angaben für drei Benutzergruppen machen müssen, insgesamt müssen also drei Additionsoperationen durchgeführt werden.
chmod 777 datei1.html bedeutet also, dass datei1.html von jeder der drei Benutzergruppen gelesen, geschrieben und ausgeführt werden darf (7 = 4+2+1).
Klartext-Version
Es gibt verschiedene Möglichkeiten, die Zugriffsrechte als Klartext zu formulieren. Folgendes Beispiel zeigt eine Möglichkeit:
chmod u=rwx,g=rwx,o=rwx datei1.html
Dieser Befehl entspricht einem chmod 777. Wie Sie sehen, werden die Zugriffsrechte als Liste angegeben, z.B. mit u=rwx (steht für Eigentümer = LesenSchreibenAusführen). Angaben für die anderen Benutzergruppen werden mit einem Komma angeschlossen, wobei g für "Gruppe" und o für "Andere" steht. Innerhalb der einzelnen Benutzergruppen-Angaben steht r für "Lesen", w für "Schreiben" und x für "Ausführen".
FTP-Programme
FTP-Programme erledigen das oft etwas komfortabler: hier können Sie für die einzelnen Benutzergruppen auswählen, welche Rechte sie haben sollen. Das Programm erledigt dann die Umsetzung in entsprechende Befehle.