{"id":3409,"date":"2016-03-05T13:42:40","date_gmt":"2016-03-05T12:42:40","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=3409"},"modified":"2016-03-05T13:42:40","modified_gmt":"2016-03-05T12:42:40","slug":"korrekte-linux-chmod-rechte-fuer-wordpress-aktualisierungen","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/korrekte-linux-chmod-rechte-fuer-wordpress-aktualisierungen\/","title":{"rendered":"Korrekte Linux chmod Rechte f\u00fcr WordPress-Aktualisierungen"},"content":{"rendered":"<p>WordPress sowie deren Plugins erhalten regelm\u00e4\u00dfig Aktualisierungen. H\u00e4ufig werden dabei Sicherheitsl\u00fccken geschlossen. Es empfiehlt sich daher, diese Updates unbedingt so schnell wie m\u00f6glich einzuspielen. Ansonsten ist die WordPress-Installation verwundbar f\u00fcr Angreifer, mit verheerenden Folgen f\u00fcr den Seitenbetreiber sowie deren Besucher: Beispielsweise k\u00f6nnte die Seite unbemerkt zur Verbreitung von Schadsoftware verwendet werden. Gl\u00fccklicherweise bietet WordPress von Haus aus ein Update-System an, das den Kern sogar selbstst\u00e4ndig aktualisieren kann. Dieser Artikel zeigt, welche Rechte dabei auf dem Server gesetzt werden m\u00fcssen. Wir gehen hierbei von einem Linux-Server aus. Dort werden die meisten PHP-Seiten und somit auch WordPress-Installationen gehostet, da es dort effektiv am besten l\u00e4uft.<\/p>\n<h3><strong>Pr\u00fcfen der Rechte<\/strong><\/h3>\n<p>Da WordPress eine Fallback-L\u00f6sung via FTP eingebaut hat, l\u00e4sst sich bereits \u00fcber das Admin-Backend sehr einfach \u00fcberpr\u00fcfen, ob die notwendigen Rechte vorhanden sind. Zumindest sofern bereits ausstehende Updates existieren. In diesem Fall navigiert man links zu\u00a0<strong>Dashboard &gt; Aktualisierungen<\/strong> und versucht beispielsweise ein Plugin-Update durchzuf\u00fchren. Erscheint dabei die oben zu sehende Maske in der man Zugangsdaten eines FTP-Servers eingeben soll, sind die Rechte unvollst\u00e4ndig oder gar nicht gesetzt worden. In diesem Fall m\u00fcsst ihr die folgenden zwei Schritte durchf\u00fchren.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Setzen des Eigent\u00fcmer-Benutzers und Gruppe<\/strong><\/h3>\n<p>Unter Linux geh\u00f6rt jede Datei und jedes Verzeichnis einem Benutzer bzw. einer Gruppe. F\u00fcr eine WordPress-Installation sollte das gesamte Root-Verzeichnis der Nutzer und Gruppe geh\u00f6ren, unter der PHP l\u00e4uft. Mit PHP-FPM k\u00f6nnen diese beiden in der Konfigurationsdatei der jeweiligen Seite wie folgt hinterlegt werden:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nuser = www-data\r\ngroup = www-data\r\n<\/pre>\n<p>Dieses Beispiel zeigt die Standardwerte. Je nach Konfiguration k\u00f6nnen hier aber auch andere Nutzer angegeben werden. Der Besitzer-Nutzer sowie die Gruppe werden wie folgt gesetzt:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nchown www-data:www-data -R \/var\/www\/example.com\/pub_html\/* \r\n<\/pre>\n<p>Damit geh\u00f6rt das gesamte Verzeichnis <strong>\/var\/www\/example.com\/pub_html\/<\/strong> inklusive allen Dateien und Unterverzeichnissen dem Nutzer\u00a0<strong>www-data<\/strong> sowie der gleichnamigen Gruppe. Je nach Konfiguration muss der Pfad sowie ggf. auch die Namen von Nutzer und Gruppe angepasst werden.<\/p>\n<h3><strong>Zuweisung der korrekten Verzeichnis-Rechte mittels chmod<\/strong><\/h3>\n<p>Nun m\u00fcssen wir noch konkret definieren, was der inhabende Nutzer und die Gruppe d\u00fcrfen. Daf\u00fcr nutzen wir das Werkzeug\u00a0<strong>chmod<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nfind . -type d -exec chmod 755 {} \\;\r\n<\/pre>\n<p>Was passiert hier? Zun\u00e4chst suchen wir alle Ordner (<strong>-type d<\/strong> steht f\u00fcr\u00a0<strong>D<\/strong>irectory) und f\u00fchren auf diese unseren chmod-Befehl aus. Ein kleiner Crashkurs zur Rechtevergabe mittels chmod: Die erste Zahl steht f\u00fcr den inhabenden Nutzer und die zweite f\u00fcr die Gruppe &#8211; in unserem Beispiel jeweils\u00a0<strong>www-data\u00a0<\/strong>genannt. Mit der letzten Zahl wird festgelegt, was alle anderen Benutzer d\u00fcrfen. Die Zahlen stehen f\u00fcr die Rechte:\u00a0<strong>4<\/strong> = Read (Dateien lesen),\u00a0<strong>2<\/strong> = Write (Dateien schreiben oder ver\u00e4ndern) und\u00a0<strong>1<\/strong> steht f\u00fcr Execute (beispielsweise f\u00fcr das Ausf\u00fchren von Scripten ben\u00f6tigt). Durch addieren lassen sich die Rechte wie in einer Bitmaske kombinieren. Im Falle von 755 darf der inhabende Benutzer (7) also alles: 4 + 2 + 1 = 7. Die inhabende Gruppe sowie alle anderen Nutzer k\u00f6nnen dagegen lediglich lesen und ausf\u00fchren ( 4 + 1 = 5).<\/p>\n<p>Dasselbe machen wir nun mit den Dateien:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nfind . -type f -exec chmod 644 {} \\;\r\n<\/pre>\n<p>Wie man sieht ist der Aufruf sehr \u00e4hnlich. Allerdings suchen wir in diesem Fall nach Dateien (<strong>F<\/strong>ile) und vergeben etwas weniger Rechte. WordPress hat nun die M\u00f6glichkeit, neue Dateien herunterzuladen sowie die vorhandenen zu modifizieren. Letzteres ist beispielsweise dann n\u00f6tig, wenn eine Datei ver\u00e4ndert wurde und WordPress die alte Datei mit der aktualisierten Version ersetzen muss.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress sowie deren Plugins erhalten regelm\u00e4\u00dfig Aktualisierungen. H\u00e4ufig werden dabei Sicherheitsl\u00fccken geschlossen. Es empfiehlt sich daher, diese Updates unbedingt so schnell wie m\u00f6glich einzuspielen. Ansonsten ist die WordPress-Installation verwundbar f\u00fcr Angreifer, mit verheerenden Folgen f\u00fcr den Seitenbetreiber sowie deren Besucher: Beispielsweise k\u00f6nnte die Seite unbemerkt zur Verbreitung von Schadsoftware verwendet werden. Gl\u00fccklicherweise bietet WordPress von &#8230;<\/p>\n","protected":false},"author":5,"featured_media":3414,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[391,62],"tags":[385,75,387,161],"class_list":["post-3409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux-server","category-server","tag-chmod","tag-linux","tag-update","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/3409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=3409"}],"version-history":[{"count":5,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/3409\/revisions"}],"predecessor-version":[{"id":3415,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/3409\/revisions\/3415"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/3414"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=3409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=3409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=3409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}