Korrekt gesetzte Zugriffsrechte sind ein wichtiger Bestandteil einer sicheren CMS-Installation . Diese definieren, wer Dateien und Verzeichnisse lesen und schreiben kann.

WordPress als Beispiel

Weil WordPress so beliebt ist, w├Ąhle ich es hier als Beispiel-CMS. Die grundlegenden Regeln sind aber unabh├Ąngig vom CMS, sie gelten f├╝r alle Webseiten die auf UNIX basierten Betriebsystemen laufen (wie auch Linux und Mac OS X).

Zugriffsrechte via SSH setzen

Damit kein Angreifer die Dateien deiner WordPress Webseite infiltrieren und damit zum Beispiel Spam verschicken kann, ist es wichtig, Zugriffsrechte m├Âglichst streng einzustellen. Am schnellsten geht das, wenn du dich ├╝ber SSH auf dem Server anmeldest und dann auf der Konsole die entsprechenden Berechtigungen setzt.

Den Benutzer und die Gruppe setzen

Zun├Ąchst solltest du sicherstellen, dass nur der passende Benutzer und die passende Gruppe Zugriff auf die Dateien hat. Normalerweise ist das www-data, je nach Setup und Hoster kann das aber variieren:

chown www-data:www-data -R /pfad/zu/wordpress/

Mit diesem Kommando ├Ąndern wir mit einem Schlag den Benutzer und die Gruppe auf www-data.

Der grundlegende Befehl hei├čt chown. Das K├╝rzel steht f├╝r change owner also Benutzer ├Ąndern. Als Parameter ben├Âtigt er den Benutzer, die Gruppe und das jeweilige Verzeichnis oder die Datei. Wie du siehst, werden Benutzer und Gruppe mit einem Doppelpunkt getrennt:

chown benutzer:gruppe Datei

In unserem Fall spielt der zus├Ątzlich Parameter -R eine entscheidende Rolle (bitte unbedingt auf die Gro├čschreibung achten). Er f├╝hrt den Befehl rekursiv durch. Das bedeutet, dass die ├änderung auf alle im Verzeichnis enthaltene Verzeichnisse und Dateien angewandt werden und zwar auch auf enthaltene Unterverzeichnisse.

Lie├čen wir den Parameter weg, w├╝rden die ├änderungen nur auf das Hauptverzeichnis angewandt werden.

Berechtigungen f├╝r Verzeichnisse

Damit alle in WordPress enthaltenen Verzeichnisse (unter Windows auch Ordner genannt) die korrekten Berechtigungen haben, k├Ânnen wir folgenden Befehl nutzen:

find /pfad/zu/wordpress/ -type d -exec chmod 755 {} \;

Der Befehl sieht weitaus komplexer aus und besteht eigentlich auch aus zweien:

Mittels find suchen wir im angegebenen Pfad, also innerhalb der Verzeichnisse und Dateien von Wordpress. Der Parameter -type d legt das Suchmuster fest: alle Verzeichnisse (d = directories).

F├╝r jedes Verzeichnis, das gefunden wird, wird chmod ausgef├╝hrt. Das funktioniert ├Ąhnlich wie das chown weiter oben und steht f├╝r change mode . Damit k├Ânnen wir festlegen, welche Zugriffsrechte gew├Ąhrt werden.

F├╝r die Wordpress-Verzeichnisse setzen wir einen Wert von 755. Das bedeutet der Benutzer darf lesen, schreiben und ausf├╝hren (die 7). Die Gruppe darf lesen und ausf├╝hren aber nicht schreiben. Alle anderen d├╝rfen lesen und ausf├╝hren aber nicht schreiben. Das sind die beiden 5en am Ende.

Diese Methode nennt man oktal, weiter unten erkl├Ąre ich noch mal etwas genauer, was es damit auf sich hat und warum wir hier 755 gew├Ąhlt haben.

Berechtigungen f├╝r Dateien

Die Dateien innerhalb unseres Wordpress Verzeichnisses brauchen andere Zugriffsrechte, der Befehl ist aber fast identisch:

find /pfad/zu/wordpress/ -type f -exec chmod 644 {} \;

Zun├Ąchst siehst du hier, dass der Type sich ├Ąndert. Da wir diesmal nur Dateien ansprechen wollen, lautet er: -type f. Das F steht in diesem Fall f├╝r files also Dateien.

Auch unser chmod-Befehl variiert leicht, diesmal setzen wir die Berechtigungen auf 644, das hei├čt: Der Benutzer darf lesen und schreiben, die Gruppe darf lesen, alle anderen d├╝rfen auch nur lesen.

Mit diesen Berechtigungen haben wir den Zugriff strengstm├Âglich eingestellt, somit ist es nicht ohne Weiteres m├Âglich, Manipulationen an Dateien vorzunehmen oder neue Dateien einzuschleusen.

Zugriffsrechte mittels FTP ├Ąndern

H├Âchstwahrscheinlich hast du einen Hoster, der dir den direkten Zugriff ├╝ber SSH gar nicht erlaubt. Das tun n├Ąmlich nur wenige (wie z.b. all-inkl).

In den meisten F├Ąllen bleibt dann noch der Weg ├╝ber FTP. Leider variieren die FTP-Programme sehr stark. Bei manch einem kann man die Berechtigungen, wie oben beschrieben, als Zahlenwert eingeben, bei anderen muss man m├╝hselig H├Ąkchen anklicken.

Der Vorgang ist aber bei allen ├Ąhnlich:
Logge dich via FTP ein, w├Ąhle die entsprechenden Dateien und Verzeichnisse aus und setze die passenden Berechtigungen. Bei guten FTP-Programm kannst du dies auch rekursiv tun, das spart viel Arbeit.

Einige Hoster bieten zudem die M├Âglichkeit, Berechtigungen ├╝ber deren Administrationsoberfl├Ąche zu ├Ąndern. Das ist meist eine gute Alternative, weil man hier oftmals besser zwischen Dateien und Verzeichnissen filtern kann.

chmod Zahlen und Symbole

Bei der Anzeige von Berechtigungen von Dateien und Verzeichnissen kann es zwei unterschiedliche Anzeigeformen geben. Zum einen die weiter oben verwendete oktale Anzeige oder die symbolische Anzeige, die auf dem ersten Blick etwas ├╝bersichtlicher wirkt und daher oft in FTP-Programm verwendet wird.

chmod - symbolische Anzeige

Ich fange mit der symbolischen Ansicht an, da diese f├╝r Einsteiger zun├Ąchst schneller zu verstehen ist. Wenn du dich via SSH oder FTP auf deinem Server oder beim Hoster anmeldest und dir die Zugriffsberechtigungen anschaust, siehst du etwas, dass dem hier ├Ąhnelt:

drwxr-xr-x Verzeichnis
-rw-r--r-- Datei

Die vier Symbole, die wir hier sehen sind:

  • - keine Berechtigung
  • r lesen (read)
  • w schreiben (write)
  • x ausf├╝hren (execute)
  • d Verzeichnis (directory)

Jede Datei und jedes Verzeichnis kann einen oder alle dieser Berechtigungen zugewiesen bekommen.

Wie du siehst, tauchen diese Symbole aber mehrfach auf. Die Erkl├Ąrung hierf├╝r ist ganz einfach: Jede Datei und jedes Verzeichnis hat drei unterschiedliche Zugriffsberechtigungen:

  • Der Inhaber/Benutzer
  • Die Gruppe
  • Alle anderen

In der Regel hat der Inhaber oder auch Benutzer genannt, die meisten Zugriffsrechte. Der Benutzer ist ein reeler Systembenutzer (oder wird als solcher ÔÇ×virtualisiertÔÇť). Bei Webseiten sind die Gruppe und alle anderen fast gleichzusetzen, deshalb haben sie in den meisten F├Ąllen auch die selben Berechtigungen.

Die Gruppe ist eine Art Container. Mehrere Benutzer k├Ânnen der selben Gruppe angeh├Âren. Somit ist es m├Âglich der Gruppe bestimmte Rechte zu geben, die dann automatisch f├╝r alle Mitglieder der Gruppe gelten.

Werfen wir noch mal einen Blick auf die Zugriffsrechte des Verzeichnisses und teilen sie diesmal in die drei Varianten auf:

d / rwx / r-x / r-x

Ignorieren wir zun├Ąchst mal den ersten Teil, das D. Und schauen uns den Rest an.

Der zweite Block, also rwx beschreibt die Zugriffsrechte des Inhabers/Benutzers. Er darf lesen, schreiben und ausf├╝hren.

Der dritte Block, also r-x zeigt die Zugriffsrechte der Gruppe an. Sie darf lesen und ausf├╝hren, nicht aber schreiben (deshalb das -).

Alle anderen d├╝rfen ebenfalls nur lesen und ausf├╝hren.

Der ersten Block, hier also das d, zeigt besondere Typen von Objekten an. In diesem Fall handelt es sich um ein Verzeichnis, weshalb das D vorangestellt ist. Es kann sich aber auch um einen Link (eine Art Verkn├╝pfung zu einer anderen Datei) handeln, dann st├╝nde an dieser Stelle ein kleines L l.

Verzeichnisse haben zudem die Besonderheit, dass sie ausf├╝hrbar sein m├╝ssen, obwohl sie ja eigentlich keine Programme oder Skripte sind. Damit aus ihnen aber gelesen werden kann, m├╝ssen sie ebenfalls mit Ausf├╝hrrechten versehen werden.

Berechtigungen k├Ânnen nicht nur symbolisch dargestellt, sondern auch gesetzt werden. Wollen wir dem Benutzer zum Beispiel Schreibrechte geben, k├Ânnen wir das wie folgt tun:

chmod u+w Datei

Wieder kommt chmod zum Einsatz. Mit dem Parameter u sagen wir, dass wir dem Benutzer (user) eine Berechtigung gew├Ąhren oder entziehen wollen. Der Parameter +w legt fest, was wir tun, ihm n├Ąmlich Schreibrecht (write) geben.

Wir k├Ânnen den Benutzer auch vorhandene Schreibrecht entziehen:

chmod u-w Datei

Daf├╝r haben wir einfach das Plus durch ein Minus ersetzt.

Die Symbole sind mit denen der Anzeige identisch, wem man die Berechtigung gibt, legen die vorangestellten K├╝rzel fest:

  • u Benutzer (user)
  • g Gruppe (group)
  • o Andere (others)
  • a Alle (all)

chmod - oktale Anzeige

Kommen wir zur├╝ck zur oktalen Ansicht, die wir jetzt mal etwas entschl├╝sseln wollen, denn so kompliziert ist sie gar nicht.

Schnappen wir uns unseren chmod von oben und zwar das 755. ├ähnlich wie bei der symbolischen Ansicht, sind hier drei Bl├Âcke enthalten: Der Benutzer, die Gruppe, alle anderen.

Eigentlich sind es auch hier vier Bl├Âcke, den ersten schreiben wir aber einfach nicht mit, er entspricht im Normalfall einer 0.

Anders als bei der symbolischen Ansicht, werden pro Block nicht drei Berechtigungen (r,w,x) ausgewiesen, sondern nur eine Zahl festgelegt. Diese entsteht durch Addition der einzelnen Berechtigungen:

  • 0: Keine Berechtigung
  • 1: Ausf├╝hren
  • 2: Schreiben
  • 4: Lesen

Der Benutzer hat von uns die Berechtigung 7 bekommen, somit hat er vollen Zugriff:

7 = 1 + 2 + 4

Die Gruppe und der Rest, hat die Berechtigung 5 bekommen, also lesen und ausf├╝hren:

5 = 1 + 4

Wenn man diese vier Werte im Kopf hat und wei├č, dass sie durch Addition kombiniert werden, ist es relativ einfach zu erkennen, welche Berechtigungen f├╝r eine Datei oder ein Verzeichnis vergeben sind.

Unser zweites Beispiel von oben, f├╝r die Dateien, lautete: 644 und entspricht also:

Eigent├╝mer/Benutzer darf lesen und schreiben

6 = 2 + 4

Die Gruppe und alle anderen d├╝rfen nur lesen:

4 = 4

Warum genau diese Zahlen?

Vielleicht wirst du dich jetzt fragen, warum man ausgerechnet diese vier Zahlen gew├Ąhlt hat. Wenn du mal herum probierst, wirst du feststellen, dass durch die Addition der Zahlen keine Dopplungen zustande kommen k├Ânnen. H├Ątte man die Zahlen einfach fortlaufend gew├Ąhlt, also 0,1,2,3 w├Ąren sie uneindeutig:

3 = 3
3 = 1 + 2

Nat├╝rlich steckt noch ein bisschen mehr dahinter und theoretisch kann man auch die Berechtigung 3 geben. Die Tabelle der m├Âglichen Rechte ist bin├Ąr aufgebaut:

Dezimal Berechtigung rwx (bin├Ąr)
0 Keine 000
1 Ausf├╝hren 001
2 Schreiben 010
3 Schreiben und Ausf├╝hren 011
4 Lesen 100
5 Lesen und Ausf├╝hren 101
6 Lesen und Schreiben 110
7 Alle 111

Crashkurs Zahlentheorie

F├╝r all jene, die nicht so fit im Umrechnen sind, ein kleiner Crashkurs:

Bin├Ąre Zahlen lie├čt man quasi von rechts nach links. Wie bei jedem Zahlensystem kann jede Stelle einen gewissen Bereich erfassen. Bei unseren Standardzahlen, den Dezimalzahlen liegt der Bereich zwischen 0 und 9. ├ťberschreitet die gew├╝nschte Zahl den Bereich, wird vorne eine weitere Stelle erg├Ąnzt.
Unsere 10 entspricht dem. Wenn ich zu einer 9 eine 1 addiere, dann ├╝berschreitet das Resultat unseren Zahlenbereich, denn wir haben keine einzelne Zahl, die der 10 entspricht. Unsere 10 setzt sich also aus zwei Zahlen zusammen, der 0 in der ersten Stelle und der 1 in der zweiten.

Bin├Ąrzahlen funktionieren genauso, nur dass der Zahlenbereich stark eingeschr├Ąnkt ist. Er besteht nur aus der 0 und der 1.
Rechne ich also 1+1, erg├Ąbe das dezimal die 2. Aber im Dualsystem (bin├Ąr) gibt es diese Zahl nicht, es gibt keine 2. Wie oben mit 9+1 beschrieben, wird also eine neue Stelle vorangestellt und die Zahl lautet: 10.

Bin├Ąr lautet es also:

1 + 1 = 10 // dezimal: 1 + 1 = 2
10 + 1 = 11 // dezimal: 2 + 1 = 3
11 + 1 = 100 // dezimal: 3 + 1 = 4

Na, raucht der Kopf? Es ist ein bisschen schwierig zu erkl├Ąren, aber - wie Mathematik eben ist - eigentlich ganz logisch. Lass es dir einfach ein bisschen durch den Kopf gehen, dann sollte auch die obige Tabelle auf einmal logisch und nachvollziehbar sein.

Grundwissen

Jetzt hast du also das n├Âtige Grundwissen, um Berechtigungen und Benutzer f├╝r Dateien und Verzeichnisse zu setzen. Alles basiert auf dieser Logik. Wenn du etwas tiefer in die Materie einsteigen m├Âchtest, kannst du dir folgende Links ansehen.

Quellen und weiterf├╝hrende Informationen

Kommentieren
Die eigegebene E-Mail-Adresse wird vorm Speichern unwiderruflich verschl├╝sselt und dient nur zur Darstellung des Avatars. Mit dem Absenden stimmst du zu, dass die eingegebenen Daten gespeichert und in Form eines Kommentars dargestellt werden d├╝rfen.
a blank canvas

Bisher wurden keine Kommentare geschrieben