Sichere Dateiberechtigungen auf Shared Hosting Servern

Technik
Sichere Dateiberechtigungen auf Shared Hosting Servern

Wenn es um Endkunden Projekte geht, wie das Betreiben einer durchschnittlichen Website oder eines normalen Online-Shops, setze ich nach wie vor auf Shared Managed Hosting. Dabei kümmert sich der Haus da um so ziemlich alles, was den Betrieb, die Updates, die Hardware und die Wartung des Servers anbelangt. 

Ein Nachteil beim Shared Managed Hosting ist allerdings, dass man mit anderen Benutzern auf dem gleichen Server sitzt. Daher sollte man sich ein paar Gedanken über die Dateisicherheit machen. Der Besitzer (Owner) und die Gruppe (Group) einer Datei werden in den meisten Fällen automatisch vom Server festgelegt. Was allerdings immer vom jeweiligen Anwender beeinflussbar ist, ist die Datei Berechtigung.

Es ist verlockend, eine Datei einfach auf die Datei Berechtigung 777 (-rwxrwxrwx) zu setzen. Dann funktioniert sie auf jeden Fall. Allerdings gibt das allen Personen die Möglichkeit, die Datei zu schreiben, zu lesen und auszuführen.

Eine gute Praxis wäre es daher, die minimalen Dateiberechtigungen auf dem eigenen Server herauszufinden. Ich gehe von einem typischen LAMP-Server aus, also Linux Apache MySQL und PHP.

  • Ordner benötigen auf den meisten Servern eine Berechtigung von 700, manchmal 711
  • Normale Dateien benötigten eine Datei Berechtigung von 644
  • PHP Dateien benötigen lediglich eine Datei Berechtigung von 600 

Mit folgenden drei Zeilen könnt ihr mittels SSH im Terminal die Dateiberechtigungen von einem ganzen Ordner schnell ändern. Die erste Zeile ändert Dateiberechtigungen aller Ordner und Unterordner. Die zweite Zeile ändert Dateiberechtigungen aller Dateien und die dritte Zeile ändert die Dateiberechtigungen für alle PHP Dateien im jeweils aktuellen Ordner (z.B. public_html). Der Punkt hinter find steht dabei einfach für den aktuellen Ordner. Es kann aber auch ein Pfad angegeben werden.

find . -type d -exec chmod 711 {} +
find . -type f -exec chmod 644 {} +
find . -name "*.php" -exec chmod 600 {} +

Ressourcen:

Blog Post License
Permalink: https://to.ptmr.io/9zbo5o