Erreur 403 Forbidden : réparer les permissions des fichiers et dossiers sur hébergement cPanel (fix permissions)

Sur votre Hébergement cPanel EasyHoster, vos fichiers sont configurés pour utiliser les permissions Chmod 644 et vos répertoires sont configurés pour le Chmod 755.

Cependant, si vous venez de transférer des fichiers sur votre hébergement, depuis un autre système (autre hébergeur, etc), il est possible que les droits en lecture/écriture/exécution de vos fichiers et dossiers doivent être corrigés.

Voici un exemple de problème que vous pourriez expérimenter si vos dossiers et fichiers n’ont pas les bons droits en écriture.

403 Forbidden Error : “403 request forbidden by administrative rules”

Lorsque vous voyez un message d’erreur tel que « 403 Forbidden Request », cela signifie généralement que le site Web ou le serveur ne peut pas répondre à votre demande en raison de certaines règles mises en place.

Par exemple, il peut y avoir des problèmes de droits en lecture ou exécution sur certains fichiers, certains dossiers ou certains répertoires “parents” ou “racine” (parent & root directory).

Il existe plusieurs variations à cette erreur “403 forbidden request” :

  • Forbidden: You don’t have permission to access “directory” on this server
  • HTTP Error 403 – Forbidden
  • 403 forbidden request forbidden by administrative rules
  • Access Denied – You don’t have permission to access
  • You don’t have permission to access this resource. Server unable to read htaccess file, denying access to be safe. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request
Error 403, so Fix cPanel Permissions Chmod 644 755
Exemple d’une Erreur 403 forbidden request forbidden by administrative rules, sur Reddit.com.

Les causes de ce type d’erreur peuvent être multiples.

Si vous êtes un utilisateur de WordPress, vous devriez en priorité suivre notre Guide de dépannage WP, mais vous pouvez aussi tout de suite vérifier, et si nécessaire, réparer les permissions (chmod) sur vos fichiers et dossiers hébergés sous cPanel.

Cela ne mange pas de pain.

Vérifier les droits d’accès aux fichiers et dossiers dans cPanel

Pour vérifier les droits actuels sur vos fichiers/dossiers ou pour vous assurer que vos lignes de commande ont fait leur travail, vous pouvez vous rendre dans cPanel > Gestionnaire de fichiers (File Manager) et visiter le dossier contenant votre application Web.

Vous pourrez y retrouver une colonne Permissions affichant très clairement quels droits ont été définis pour chaque fichier ou dossier.

Permissions fichiers et dossiers hébergement cPanel
Dans le Gestionnaire de fichiers de cPanel sont affichées très clairement les permissions sur chaque fichier et dossier.

Pour rappel, sauf indications contraires spécifiques à votre CMS, Framework ou Application Web, les fichiers devraient avoir un Chmod de 644 et les répertoires un Chmod de 755.

Comment fixer les permissions Chmod 644 sur les fichiers et Chmod 755 sur les dossiers ?

Pour cela, il vous suffit de vous connecter au Terminal cPanel ou Shell SSH de votre Hébergement EasyHoster et d’exécuter à tour de rôle, les 2 commandes décrites ci-dessous.

Pour des questions de simplicité, nous allons utiliser des chemins d’accès relatifs et non absolus. Donc, utilisez la commande  cd  (change directory) pour entrer dans le répertoire contenant votre application Web, votre site WordPress ou votre autre CMS.

S’il s’agit de votre nom de domaine principal, entrez cd public_html et s’il s’agit d’un domaine supplémentaire (Addon Domain), il peut s’agir de cd example.com.

Dans notre exemple, cela sera /public_html.

cd public_html

Nous sommes à présent entrés dans le répertoire /public_html, ce qui peut être vérifié grâce à la commande  ls .

ls

Grâce à cette commande, vous pouvez voir les fichiers et dossiers contenus dans /public_html, ce qui confirme que nous sommes bien dans le répertoire. Nous sommes enfin prêts à changer les droits en lecture/écriture des fichiers et dossiers.

Nous vous rappelons qu’avant toute opération sensible sur vos fichiers, il est indispensable de réaliser d’abord une sauvegarde de votre compte cPanel, et ce, pour éviter la perte de données et pouvoir facilement revenir en arrière en cas de fausse manipulation ou de résultat inattendu.

Commençons par passer les fichiers en Chmod 644

Après avoir exécuté cd public_html (ou autre répertoire), voici la commande à exécuter pour réparer les permissions des fichiers de cPanel :

find . -type f -exec chmod 644 {} \;

Notez que cette opération peut prendre plusieurs minutes…

Terminons par passer les dossiers en Chmod 755

Toujours dans le répertoire opportun (par exemple, public_html), voici la commande à exécuter pour réparer les permissions des dossiers de cPanel :

find . -type d -exec chmod 755 {} \;

Mauvais propriétaire pour certains fichiers et/ou dossiers (chown)

Outre les permissions en Lecture/Écriture/Exécution qui peuvent être définies grâce à la commande chmod, il se peut que vous ayez des erreurs de propriétaire (chown), par exemple, suite à la Compression/Décompression de fichiers/dossiers depuis un autre espace d’hébergement, comme illustré et entouré en orange sur la capture d’écran insérée ci-dessous (le propriétaire du fichier test1.txt est root au lieu de “hebergeu”).

Vous pouvez vérifier cela en naviguant dans vos répertoires grâce au Terminal et à la commande « ls -lah ».

Dans ce cas, si vous êtes sur un hébergement mutualisé (comme ceux d’EasyHoster), la correction de « propriétaire » ne peut se faire qu’en root, depuis le cœur du serveur, car en tant qu’utilisateur Linux mutualisé, vous n’avez pas la permission de changer un utilisateur qui n’est pas « vous-même ». Autrement dit, il sera nécessaire d’ouvrir un ticket auprès du support de votre hébergeur web afin de lui demander de vérifier qu’aucune erreur ne figure au niveau du « propriétaire » de vos fichiers et dossiers. Puis demander à votre hébergeur web de corriger ces erreurs, le cas échéant, grâce à la commande chown user:group, comme illustré et entouré en vert ci-dessous (nous corrigeons la propriété du fichier test1.txt en “hebergeu”).

Erreur 403 suite à Mauvais CHOWN à corriger sur Hébergement cPanel avec Terminal / shell SSH

Créer un fichier bash de “fix perm” sur serveur dédié ou VPS

Si vous êtes l’heureux locataire d’un serveur dédié avec les accès root, vous pouvez vous amuser à créer un script bash qui, une fois exécuté, réparera les permissions des fichiers et dossiers du ou des comptes cPanel de votre choix, passé(s) en argument.

Ci-dessous, vous pourrez retrouver le meilleur script bash disponible pour corriger les autorisations des fichiers d’un compte cPanel complet.

Attention, rappelez-vous que vous êtes seul responsable des commandes que vous exécutez sur votre serveur. Vérifiez toujours les lignes de commande partagées sur Internet avant de les exécuter dans votre système. De même, assurez-vous d’effectuer des sauvegardes régulières de vos données.

Pour utiliser ce script bash, il vous faudra copier le script sur votre serveur, lui attribuer le chmod 755 et l’exécuter (bash) en passant les noms d’utilisateur cPanel comme arguments :

./fixperms user1 user2 user3

Vous pouvez également exécuter une boucle for sur le serveur en vous inspirant de cette ligne de commande :

for i in `ls -A /var/cpanel/users` ; do ./fixperms $i ; done

Ci-dessous, voici le script bash à copier dans un fichier, par exemple grâce aux commandes  touch  et  nano .

#!/bin/bash
# Script to fix permissions of cPanel accounts

if [ "$#" -lt "1" ];then
        echo "Must specify user"
        exit;
fi

USER=$@

for user in $USER
do

    HOMEDIR=$(egrep "^${user}:" /etc/passwd | cut -d: -f6)

    if [ ! -f /var/cpanel/users/$user ]; then
        echo "$user user file missing, likely an invalid user"

    elif [ "$HOMEDIR" == "" ];then
        echo "Couldn't determine home directory for $user"


    else

        echo "Setting ownership for user $user"

        chown -R $user:$user $HOMEDIR
        chmod 711 $HOMEDIR
        chown $user:nobody $HOMEDIR/public_html $HOMEDIR/.htpasswds
        chown $user:mail $HOMEDIR/etc $HOMEDIR/etc/*/shadow $HOMEDIR/etc/*/passwd

        echo "Setting permissions for user $USER"

        find $HOMEDIR -type f -exec chmod 644 {} \; -print
        find $HOMEDIR -type d -exec chmod 755 {} \; -print
        find $HOMEDIR -type d -name cgi-bin -exec chmod 755 {} \; -print
        find $HOMEDIR -type f \( -name "*.pl" -o -name "*.perl" \) -exec chmod 755 {} \; -print

        chmod 750 $HOMEDIR/public_html

        if [ -d "$HOMEDIR/.cagefs" ]; then
            chmod 775 $HOMEDIR/.cagefs
            chmod 700 $HOMEDIR/.cagefs/tmp
            chmod 700 $HOMEDIR/.cagefs/var
            chmod 777 $HOMEDIR/.cagefs/cache
            chmod 777 $HOMEDIR/.cagefs/run
        fi
    fi
done

Si vous disposez d’un accès root sur votre serveur dédié, n’oubliez pas que de grands pouvoirs impliquent de grandes responsabilités.

Autres causes possibles d’erreurs 403 ?

Comme déjà indiqué ci-dessus, bien que la source du problème soit dans 90% des cas, des erreurs au niveau des permissions des fichiers/dossiers (chmod) et/ou un mauvais propriétaire (chown) ; les causes des erreurs 403 peuvent être multiples et difficiles à diagnostiquer.

Voici donc quelques pistes supplémentaires pour vous aider à trouver la cause de ces erreurs en vue de les résoudre.

– Votre périphérique (ordinateur) pointe vers la mauvaise adresse IP

Suite à une migration récente (pour vérification avant dans changer vos NS), il est possible que vous ayez réalisé un pointage local du nom de domaine vers une adresse IP personnalisée, en modifiant votre fichier /etc/hosts ou équivalent.

Si vous constatez une erreur 403 suite à ce pointage local, il se peut que vous ayez choisi la mauvaise adresse IP. Par exemple, vous pointez vers l’adresse IP du serveur, ou tout autre adresse IP failover, mais pas celle qui a réellement été configurée pour votre nom de domaine.

Vérifiez une nouvelle fois que l’adresse IP renseignée dans votre fichier /etc/hosts est bien celle configurée pour l’utilisateur en cours sur le serveur Web.

– Problèmes de configuration du fichier .htaccess

Le fichier .htaccess peut contenir des règles incorrectes ou incompatibles avec la configuration du serveur. Par exemple, une mauvaise redirection, une règle de réécriture incorrecte ou l’utilisation de directives désactivées par l’hébergeur peuvent provoquer une erreur 403. Assurez-vous de vérifier et, si nécessaire, de réinitialiser ou recréer le fichier .htaccess.

– Blocage par un pare-feu ou un système de sécurité

Certaines règles de pare-feu Web (mod_security, par exemple) peuvent bloquer des requêtes jugées suspectes. Cela peut se produire si un script ou un plugin sur votre site déclenche une alerte. Vous pouvez demander à votre hébergeur de vérifier les journaux de sécurité et de désactiver temporairement ces règles pour diagnostiquer le problème.

– Filtrage des adresses IP

Vous avez peut-être, intentionnellement ou non, bloqué certaines adresses IP via cPanel ou en modifiant le fichier .htaccess. Ce blocage peut affecter aussi bien des visiteurs que votre propre adresse IP, entraînant une erreur 403. Vérifiez les configurations de vos restrictions IP.

– Saturation ou restrictions du compte d’hébergement

Les fournisseurs d’hébergement mutualisé limitent souvent l’utilisation des ressources. Si votre site dépasse le quota de disque ou les limites de ressources imposées par votre plan (ex. : CPU, RAM, connexions), le serveur peut répondre par une erreur 403. Vérifiez ces paramètres dans cPanel.

– Conflit avec un plugin ou un CMS

Dans les sites WordPress ou similaires, certains plugins ou extensions peuvent modifier les permissions des fichiers ou introduire des règles strictes dans .htaccess. Cela peut entraîner des erreurs 403 si les configurations ne correspondent pas à celles du serveur. Désactiver temporairement les plugins pour tester est une bonne démarche.

– Problème lié à l’origine des requêtes

Si vous utilisez un CDN ou un proxy (ex. : Cloudflare), les requêtes peuvent être bloquées si l’adresse IP source n’est pas autorisée dans le pare-feu ou les paramètres du serveur. Assurez-vous que les adresses IP du CDN sont correctement ajoutées aux règles d’accès.

– Fichiers ou dossiers corrompus

Des fichiers corrompus (par exemple, après une interruption de transfert FTP) peuvent provoquer des erreurs de lecture par le serveur. Effectuez une vérification et un remplacement des fichiers affectés pour voir si le problème se résout.

– Syntaxe défectueuse dans les règles de sécurité

Des configurations dans des systèmes comme le Content Security Policy (CSP) qui ne correspondent pas aux ressources demandées par le site peuvent bloquer l’accès. Par exemple, un navigateur tentant de charger un CSS ou un JavaScript non autorisé pourrait provoquer une erreur 403. Révisez vos paramètres de sécurité.

En abordant ces différentes causes, vous augmenterez vos chances de détecter et de corriger les erreurs 403 dans un environnement cPanel mutualisé.

Questions fréquentes sur les permissions (chmod) des fichiers et dossiers de cPanel

Comment changer les permissions (chmod) des fichiers et dossiers de cPanel ?

Pour modifier les droits de lecture/écriture d’un ou plusieurs fichiers ou dossiers, rendez-vous dans votre interface cPanel > Gestionnaire de fichiers (File Manager). Sélectionnez les fichiers/dossiers à modifier. Faites un clic droit > Change Permissions et vous pourrez cocher ou décocher les droits souhaités.
Pour plus d’efficacité, par exemple, pour rétablir les droits par défaut d’un site Web ou d’un compte cPanel complet, il existe ici des lignes de commande rapide à exécuter.

Quelles commandes Linux permettent de rétablir les permissions (chmod) par défaut de cPanel ?

Une fois connecté à votre Terminal cPanel ou votre Shell SSH, utilisez la commande “cd” pour entrer dans le dossier concerné par le chargement (par exemple : cd public_html). Ensuite, exécutez à tour de rôle les commandes suivantes : find . -type f -exec chmod 644 {} \; et ensuite find . -type d -exec chmod 755 {} \; Vous pourrez finalement vérifier les droits chmod de vos fichiers et dossiers, en visitant votre Gestionnaire de fichiers cPanel (File Manager).

Vérifications, l’erreur “403 you don’t have permission to access this resource” a-t-elle disparue ?

Si l’erreur 403 a disparue pour laisser place à votre site, n’oubliez pas de vérifier scrupuleusement toutes les zones importantes de votre site : formulaires, canal d’achat eCommerce, etc. Cela vous permettra de rapidement déceler les erreurs si un problème était causé par ces nouveaux droits en lecture/écriture.

Ensuite, comme nous l’avons vu au début de ce billet, pensez à vérifier que vos lignes de commande ont fait leur travail en vous rendant dans le File Manager de votre Hébergement cPanel.

Permissions fichiers et dossiers hébergement cPanel
Dans le Gestionnaire de fichiers de cPanel sont affichés très clairement les permissions sur chaque fichier et dossier.
Sommaire de ce billet
Besoin d'aide ?

Le site WordPress speed.easyhoster.net ➚ permet de tester le potentiel des solutions d'Hébergement Web EasyHoster.