Ajouter les bonnes permissions sur les fichiers et dossiers de WordPress

Ah les histoires de permissions sur les serveurs Linux, un grand classique quand on débute dans le domaine. Presque un marronnier tant la question revient souvent et pose problème à beaucoup. Il faut savoir que le système d’exploitation est globalement plutôt stricte sur ce sujet et c’est tant mieux. C’est lié à son fonctionnement par nature, donc on apprend à travailler comme ça et rassurez vous ça devient une habitude. D’ailleurs, ça devient tellement une habitude que lorsque l’on passe en root (super administrateur) on fait attention à ce que l’on fait, on ne fait pas de  » Exécuter en tant qu’administrateur  » sans la moindre vergogne si vous voyez ce que je veux dire.

Cela garantit une couche de plus pour la sécurité, mais quand on découvre l’administration de serveurs Linux, ce n’est pas toujours évident. Dans ce tutoriel, j’ai utilisé Ubuntu qui est une distribution dérivée de Debian. Ce sont les deux distributions les plus utilisées par les débutants et celles que j’utilise moi-même au quotidien sur mes serveurs, car j’en suis pleinement satisfait. Au début, on pourrait être tenté de tout faire en super administrateur et au moins ça marche, mais j’imagine que vous comprenez que c’est une très mauvaise pratique. Quand quelque chose ne s’exécute pas avec l’utilisateur qui est censé exécuter cette chose, comme un script par exemple, on ne passe pas à tout-va par le root pour le lancer. On travaille bien les permissions des fichiers et dossiers, cette fois, on va parler de notre cher CMS WordPress !

Trouver l’utilisateur qui fait tourner le serveur web

Dans un premier temps, on va devoir trouver le bon utilisateur qui fait tourner le serveur web et donc qui doit agir sur les fichiers. Avec NGINX, c’est par exemple www-data qui est l’utilisateur par défaut, mais si vous reprenez un projet, ça ne sera pas forcément le cas. Ces informations seront intéressantes pour la suite, car on doit avoir l’utilisateur pour attribuer les bons droits en conséquence à nos fichiers et dossiers de WordPress.

ps aux | grep apache2

Cette commande nous permet de savoir quel utilisateur exécute le processus apache2, elle me renvoie le nom d’utilisateur qui est la première occurrence dans sa réponse. Dans mon cas, c’est l’utilisateur ubuntu, très bien j’en prend note. Cependant, je n’utilise pas trop apache2, mais plutôt NGINX donc je lance la commande suivante :

ps aux | grep nginx

J’ai alors le retour suivant qui est plutôt cohérent avec les droits de Linux en général par défaut :

root       28982  0.0  0.4  67204  3968 ?        Ss   Mar21   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data   38066  0.0  1.1  69140 11144 ?        S    Mar22   0:25 nginx: worker process

C’est donc bien l’utilisateur www-data qui est concerné pour les fichiers de mon WordPress. Pour information, c’est de toute façon ce qui est proposé par défaut du côté de NGINX donc on ne va rien changer. Sauf cas particulier, laissez tel quel. Maintenant, que l’on a notre retour, on peut passer à la suite et modifier nos permissions sur les fichiers et dossier de notre WordPress.

Changer les permissions des fichiers et dossiers de WordPress

Si vous êtes arrivés ici, c’est peut-être parce que vous avez une erreur 403 Forbidden avec NGINX sur votre WordPress qui est l’une des erreurs les plus courantes lorsque l’on installe le CMS. Parfois avec une mise à jour qui se passe mal, on peut aussi se retrouver avec cette erreur. On sait quel est l’utilisateur qui exécute le serveur web de votre choix, on va donc à présent modifier l’ensemble des droits sur les fichiers et dossier de votre WordPress pour que tout fonctionne parfaitement.

Pour commencer, on va donc donner les bons droits de l’utilisateur qui exécute le serveur web. Dans mon cas, j’utilise NGINX, donc je vais utiliser l’utilisateur www-data qui est celui qui est utilisé par défaut. Sur mon serveur sous Linux Ubuntu, je vais dans le dossier de mon WordPress et lui appliquer les droits avec le bon utilisateur www-data :

sudo chown -R www-data:www-data /var/www/mon-site-wordpress

Si vous utilisez une autre autre utilisateur il vous suffit de changer la valeur www-data en conséquence. En exécutant cette commande, vous accordez les droits nécessaires au serveur web avec l’utilisateur par défaut www-data pour accéder aux fichiers du site web. La lettre -R signifie que la commande est exécutée de manière récursive, ce qui signifie que les permissions seront appliquées à tous les fichiers et dossiers inclus dans le répertoire /var/www/mon-site-wordpress.

Maintenant, que c’est réglé concernant l’utilisateur, nous pouvons aller modifier plus finement les permissions sur les fichiers et dossier du WordPress. Voici les permissions recommandées pour les fichiers et les dossiers de WordPress :

  • Dossiers : 755
  • Fichiers : 644
  • wp-config.php : 644 ou 640 ou 600

Pour modifier facilement l’ensemble des permissions sur les fichiers et dossiers, vous pouvez exécuter les deux commandes suivantes une fois dans le dossier de votre WordPress :

cd /var/www/mon-site-wordpress
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

La première commande cd place le terminal dans le dossier de votre site WordPress. La deuxième commande find définit les permissions 755 pour tous les dossiers et la troisième commande find définit les permissions 644 pour tous les fichiers.

Enfin, pour terminer vous pouvez modifier la valeur des permissions sur le fichier wp-config.php :

chmod 600 wp-config.php

Voilà, vous avez maintenant un WordPress réglé aux petits oignons sur votre serveur avec les bonnes permissions.

2 réflexions au sujet de “Ajouter les bonnes permissions sur les fichiers et dossiers de WordPress”

  1. Merci infiniment !!!!! 7h que je suis bloqué aujourd’hui avec ce soucis !! réglé en 2 temps 3 mouvements !! Je ne comprends quand même toujours pas pourquoi sur ce projet j’avais ce soucis alors que sur les autres non … J’adore l’informatique ^^

    Répondre

Laisser un commentaire