Bien plus qu'un hébergeur !

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

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

Voici la commande à exécuter pour réparer les permissions des dossiers de cPanel :

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

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.

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.
L'avez-vous manqué : Serveurs DNS bloqués sur “En cours” ou “En suppression” chez OVH
Sur le même sujet : À quel moment transférer son nom de domaine lorsqu’on change d’Hébergeur Web ?
Sommaire de ce billet
Besoin d'aide ?