WordPress Dateirechte anpassen

WordPress Dateirechte anpassen – schnell und einfach

Immer wieder habe ich WordPress Installation mit defekten Dateirechten, die nach einem Umzug von WordPress, nach einem Hacker Angriff, Aufräumen, manuellem Update kommen.
Defekte Zugriffsrechte in einer WordPress Installation kann sehr einfach festgestellt werden, wenn beim WordPress Update, Plugin Installation die Meldungen „Unpacking Files“, „File already exists“ oder „No Permission to overwrite“ auftauchen.

Jedem wird die Anleitung auf WordPress bekannt sein, allerdings benötigt es bei großen Installationen seine Zeit, bis alle Dateien die richtige Berechtigung haben.

Ich übernehme dabei keine Haftung für Schäden an euere WordPress Installation. Bitte macht immer ein Backup, bevor ihr irgendwelche Datei Rechte ändert. Gebt auch nicht einfach irgendwelche Sachen in eure Konsole ein, wenn ihr nicht wisst, was die mit euere Dateien machen.

### Basic – Dateirechte manuell Anpassen

Dateirechte per SSH

Für alle Ordner sollten 750 gesetzt werden:

find /path/to/your/wordpress/install/ -type d -exec chmod 750 {} \;

Für alle Dateien sollten 650 gesetzt werden:

find /path/to/your/wordpress/install/ -type f -exec chmod 640 {} \;

Dateirechte per FTP

  • Alle Dateien und Ordner zuerst rekursiv auf 644.
  • Danach alle Ordner und Unterordner (ohne die Dateien darin) auf 755, mit Ausnahme /wp-content, was später behandelt wird.
  • /wp-config.php auf 660.
  • /wp-content zuerst rekursiv auf 664.
  • Dann alle Dateien in /wp-content und dessen Unterordnern auf 775. Die Ordner und Unterordner selbst in /wp-content bleiben auf 664.

„Rekursiv“ bedeutet „für den Ordner selbst und allen darin enthaltenen Objekte wie Dateien und Unterordner“. D.h. der gesamte Verzeichnisbaum, bis zum letzten Unterordner.

Bash Script

Für alle die etwas fitter per SSH und bash Dateien sind hier ein fertiger Script.
Beim Start des Scripts wird der WordPress Installation Ordner und der User übergeben.
User zb. www-data, FTPirgendwas, e334455, user7777, …
Das hängt von eurem Hoster ab, wenn ihr das nicht wisst, würde ich hier abbrechen oder euren Hoster kontaktieren. Wenn ihr einfach irgendwas eingibt, dann kann und wird es NICHT funktionieren.
Der User kann einfach von den bestehenden Dateien nachgeschaut werden. zb. Mit einem ls-l oder Ihr erstellt im FileZilla einen neuen Ordner, dort steht ganz rechts auch der aktuelle Benutzername dabei.
Aufgerufen wird der Script mit:

./fix-wp-perms.sh  httpdocs user123
#!/bin/bash
#
# fix-wp-perms.sh 1.02
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# CALL: 
# ./fix-wp-perms.sh HTTPDOCS_ROOT WP_OWNER
#
# 1.01: Initial release 
# 1.02: Added some safety checks
#
# Author: Michael Conigliaro <mike [fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"][at] conigliaro [dot] org>
# (MOD)2016 Modified by <h_schneider [at] marketmix [dot] com>
#
 
# Setup.start
#
WP_ROOT=$1 # WordPress root directory
WP_OWNER=$2 # WordPress owner
WP_GROUP=psacln # WordPress group (Default for HostEurope Root Server)
WS_GROUP=psacln # Webserver group (Default for HostEurope Root Server)
#
# Setup.end
 
if [ $# -ne 2 ]; then
 echo "This script expects 2 arguments instead of $#"
 echo
 echo "USAGE:" 
 echo "fix-wp-perms.sh wordpress_root_folder owner"
 exit 10
fi
 
if [ ! -d $1 ]; then
 echo "ABORTED: The WordPress root folder '$1' doesn't exist!"
 exit 10
fi
 
# Reset to safe defaults
#
echo "Setting permissions to safe defaults - this can take a while ..."
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;
 
# Allow wordpress to manage wp-config.php (but prevent world access)
#
echo "Procesing wp-config ..."
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php
 
# Allow wordpress to manage wp-content
#
echo "Processing wp-content - this can take a while ..."
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;
 
echo "DONE!"
exit 0

Autor Webseite: https://codex.wordpress.org/Hardening_WordPress#File_permissions

https://marketmix.com/de/wordpress-zugriffsrechte-file-permissions-reparieren/

Viel Spaß!

Christoph Purin
Christoph Purin

Mein Name ist Christoph Purin und befasse mich mit IoT Geräten wie Raspberry, Arduino, ESP. Auch Aktivitäten wie die FFW, Quad-fahren, Amateurfunk zählen zu meinen bevorzugten Hobbys.
Dieser Blog, stellt eine Sammlung meiner Projekte dar, wie Dinge gelöst oder umgebaut werden können.

Artikel: 345

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert