Les permissions sont une mesure de confinement
Elles n’empêchent pas toutes les requêtes malveillantes et ne remplacent ni correctifs ni validation. Elles limitent ce qu’un attaquant peut rendre persistant une fois du code exécuté dans le contexte du serveur web.
Si PHP peut réécrire thèmes, extensions, fichiers du cœur et configuration, une faille applicative peut devenir une modification durable de tout le service.
Séparer le compte de déploiement du compte d’exécution
Le compte qui installe et met à jour l’application doit posséder le code. Le processus Apache ou PHP n’a besoin que de lecture. wp-config.php mérite une propriété et un mode plus restrictifs parce qu’il contient des secrets.
Dans une image Bitnami, identifiez les comptes et groupes effectifs au lieu de recopier aveuglément une commande conçue pour une autre distribution.
Comprendre les limites du socle 755/644
755 pour les répertoires et 644 pour les fichiers est un point de départ fréquent, pas une politique complète. La propriété compte autant que le mode. Un fichier 644 appartenant au serveur web reste modifiable par lui.
Évitez 777 : il masque le vrai problème de propriété et élargit inutilement les acteurs capables d’écrire.
Nommer chaque écriture légitime
Uploads, cache et répertoire upgrade peuvent nécessiter l’écriture selon l’architecture. Accordez-la explicitement, avec un groupe et des modes adaptés, puis interdisez l’exécution de scripts dans les téléversements.
Une extension qui exige l’écriture permanente dans son propre code doit déclencher une décision d’architecture, pas un chmod récursif.
Ne pas casser silencieusement les mises à jour
Le verrouillage empêche les mises à jour par l’interface. C’est intentionnel seulement si une procédure contrôlée existe : sauvegarder, ouvrir une fenêtre d’écriture ou déployer comme root, mettre à jour, valider, puis reverrouiller.
Documentez clairement DISALLOW_FILE_EDIT, DISALLOW_FILE_MODS et la responsabilité des correctifs urgents.
Vérifier le résultat effectif
Testez que PHP peut téléverser un média et traiter le cache, mais ne peut modifier functions.php, une extension ou wp-config.php. Inspectez les propriétaires après chaque livraison et exécutez les sommes de contrôle WordPress.
Une matrice simple — chemin, propriétaire, groupe, mode, justification, processus autorisé — transforme les permissions en contrôle vérifiable.


