Rôle Éditeur vs. Administrateur WordPress : Un Guide Technique Complet
WordPress est livré avec un système de contrôle d’accès basé sur les rôles (RBAC) granulaire intégré directement dans son cœur. Parmi tous les rôles par défaut, Administrateur et Éditeur sont les deux plus importants — et les plus fréquemment mal attribués. L’Administrateur dispose d’une capacité illimitée sur chaque objet WordPress, tandis que l’Éditeur opère avec une large autorité sur le contenu mais sans aucun accès aux contrôles au niveau de l’infrastructure tels que les thèmes, les plugins ou les paramètres du site.
Se tromper sur cette distinction n’est pas un simple inconvénient. Accorder à un rédacteur de contenu un accès Administrateur sur un site en production constitue une surface d’attaque directe : un compte compromis peut installer un plugin malveillant, exfiltrer la base de données ou bloquer tous les autres utilisateurs. Ce guide vous donne la profondeur technique nécessaire pour faire le bon choix à chaque fois.
Comment fonctionnent réellement les rôles et les capacités WordPress
Avant de comparer les deux rôles, il est utile de comprendre l’architecture sous-jacente. WordPress ne stocke pas les rôles comme une propriété fixe d’un compte utilisateur. Au lieu de cela, il stocke un tableau sérialisé de capacités dans la table wp_usermeta sous la clé wp_capabilities (où wp_ est votre préfixe de table). Chaque rôle est simplement un ensemble nommé de capacités enregistrées dans la classe WP_Roles.
Lorsqu’un utilisateur tente une action — publier un article, supprimer un plugin, modifier le profil d’un autre utilisateur — WordPress appelle current_user_can(), qui résout les capacités stockées de l’utilisateur par rapport à la primitive demandée. Cela signifie que les capacités sont additives et, surtout, qu’elles peuvent être personnalisées par utilisateur indépendamment de leur rôle à l’aide de plugins comme Members ou User Role Editor.
L’implication pratique : si vous avez besoin d’un utilisateur qui peut faire *presque* tout ce qu’un Éditeur peut faire mais aussi gérer un plugin spécifique, vous n’avez pas besoin de l’élever au rang d’Administrateur. Vous pouvez accorder une seule capacité supplémentaire. Comprendre cela permet d’éviter l’erreur de sur-attribution la plus courante dans la gestion des équipes WordPress.
Rôle Administrateur : Analyse complète des capacités
Le rôle Administrateur correspond à pratiquement toutes les capacités primitives exposées par WordPress. Sur une installation mono-site, cela inclut, sans s’y limiter :
Capacités de gestion du site principal :
manage_options — lire et écrire tous les paramètres via wp-admin/options-general.php, y compris l’URL du site, l’e-mail de l’administrateur, la structure des permaliens et le fuseau horaire
install_plugins, activate_plugins, update_plugins, delete_plugins — contrôle complet du cycle de vie des plugins
install_themes, switch_themes, edit_themes, delete_themes — contrôle complet du cycle de vie des thèmes, y compris l’édition directe des fichiers via l’éditeur de thèmes intégré (un vecteur d’attaque significatif)
edit_files — accès à l’éditeur de code intégré pour les thèmes et les plugins (cette capacité est désactivée lorsque DISALLOW_FILE_EDIT est défini sur true dans wp-config.php)
Capacités de gestion des utilisateurs :
create_users, edit_users, delete_users, promote_users, list_users — autorité complète sur chaque compte utilisateur du site, y compris la possibilité de rétrograder ou de supprimer d’autres Administrateurs
remove_users — supprimer des utilisateurs d’un réseau Multisite
Capacités de contenu :
edit_others_posts, edit_published_posts, delete_others_posts, delete_published_posts, delete_private_postspublish_posts, publish_pages, edit_pages, delete_pages, edit_others_pagesCapacités avancées :
import — importer du contenu via l’importateur WordPress (peut être utilisé pour injecter du contenu arbitraire à grande échelle)
export — exporter l’intégralité du contenu du site sous forme de fichier XML, y compris toutes les données utilisateur
update_core — déclencher les mises à jour du cœur de WordPress
manage_categories, moderate_comments, unfiltered_html — publier du HTML brut incluant des balises <script> sans assainissement
La capacité unfiltered_html mérite une attention particulière. Sur une installation mono-site standard, les Administrateurs et les Éditeurs la reçoivent tous les deux. Sur WordPress Multisite, seuls les Super Admins la conservent. Il s’agit d’une frontière de sécurité significative : sans unfiltered_html, le filtre wp_kses_post() supprime JavaScript et autres balises potentiellement dangereuses du contenu sauvegardé.
Quand attribuer le rôle Administrateur
La personne qui possède le compte d’hébergement et est responsable de l’intégrité technique du site
Un développeur ou ingénieur DevOps vérifié effectuant du développement de thèmes, de la configuration de plugins ou des travaux d’intégration côté serveur
Un spécialiste de la migration lors d’une opération d’importation/exportation ponctuelle (envisagez de révoquer le rôle par la suite)
Note opérationnelle critique : N’attribuez jamais le rôle Administrateur à un compte partagé ou générique. Chaque Administrateur doit être une personne nommée avec un mot de passe unique et fort et l’authentification à deux facteurs activée. Si vous exécutez WordPress sur un environnement VPS Hosting, associez l’hygiène WordPress au niveau Administrateur à la séparation des utilisateurs au niveau du système d’exploitation — votre processus de serveur web ne doit jamais s’exécuter en tant que root, et la propriété de vos fichiers WordPress doit être distincte de votre utilisateur de serveur web.
Rôle Éditeur : Analyse des capacités
Le rôle Éditeur est conçu spécifiquement pour les opérations de contenu. Il accorde une autorité étendue sur les articles, les pages, les médias, les commentaires et la taxonomie — mais exclut délibérément toutes les capacités au niveau de l’infrastructure.
Capacités de contenu qu’un Éditeur possède :
edit_posts, edit_others_posts, edit_published_posts, edit_private_postsdelete_posts, delete_others_posts, delete_published_posts, delete_private_postspublish_posts, publish_pagesedit_pages, edit_others_pages, edit_published_pages, edit_private_pagesdelete_pages, delete_others_pages, delete_published_pages, delete_private_pagesmanage_categories — créer, renommer et supprimer des catégories et des étiquettesmoderate_comments — approuver, désapprouver, marquer comme spam ou supprimer définitivement des commentairesupload_files — ajouter des médias à la bibliothèque ; modifier les métadonnées des images et le texte alternatifread_private_posts, read_private_pages — afficher le contenu qui n’est pas accessible publiquementunfiltered_html — sur les installations mono-site, les Éditeurs peuvent publier du HTML brut (voir la mise en garde Multisite ci-dessus)Ce qu’un Éditeur ne peut explicitement pas faire :
- Accéder à
wp-admin/options-general.phpou à tout écran de paramètres - Installer, activer, désactiver ou supprimer des plugins ou des thèmes
- Afficher ou modifier tout compte utilisateur autre que son propre profil
- Exécuter les mises à jour du cœur de WordPress
- Accéder aux éditeurs de fichiers de thèmes ou de plugins intégrés
- Modifier les structures de permaliens, ce qui briserait toutes les URL existantes sur l’ensemble du site
- Exporter ou importer des données du site
Quand attribuer le rôle Éditeur
- Un rédacteur en chef ou directeur de contenu qui gère le calendrier éditorial et approuve les brouillons de plusieurs contributeurs
- Un spécialiste SEO qui doit publier, planifier et optimiser des articles mais n’a aucune raison de toucher aux paramètres des plugins
- Un responsable des réseaux sociaux ou du marketing chargé de maintenir le blog actif
- Un client qui doit mettre à jour ses propres pages sans risquer de casser accidentellement le site
Administrateur vs. Éditeur : Comparaison côte à côte
| Domaine de capacité | Administrateur | Éditeur |
|---|---|---|
| Installer / mettre à jour / supprimer des plugins | Oui | Non |
| Installer / mettre à jour / supprimer des thèmes | Oui | Non |
| Modifier les fichiers de thèmes / plugins (éditeur de code) | Oui (sauf DISALLOW_FILE_EDIT) | Non |
| Gérer les mises à jour du cœur de WordPress | Oui | Non |
| Accéder aux paramètres du site (options) | Oui | Non |
| Modifier la structure des permaliens | Oui | Non |
| Créer / modifier / supprimer d’autres utilisateurs | Oui | Non |
| Attribuer ou modifier les rôles des utilisateurs | Oui | Non |
| Publier et modifier ses propres articles | Oui | Oui |
| Modifier et supprimer les articles d’autres utilisateurs | Oui | Oui |
| Gérer les catégories et les étiquettes | Oui | Oui |
| Modérer les commentaires | Oui | Oui |
| Télécharger et gérer les médias | Oui | Oui |
| Lire les articles et pages privés | Oui | Oui |
| Publier du HTML non filtré (mono-site) | Oui | Oui |
| Exporter le contenu du site | Oui | Non |
| Importer du contenu | Oui | Non |
| Accéder à l’administration réseau Multisite | Super Admin uniquement | Non |
Implications de sécurité d’une mauvaise attribution des rôles
Le problème de l’Éditeur sur-privilégié
Un schéma courant dans les agences : un rédacteur de contenu reçoit un accès Administrateur parce que « c’est plus simple ». Cela crée plusieurs risques concrets :
- L’installation de plugins comme vecteur d’exécution de code. Tout Administrateur peut installer un plugin. Un plugin est du code PHP qui s’exécute sur votre serveur. Un compte Administrateur compromis équivaut à une exécution de code à distance.
- Collecte d’identifiants via l’exportation. L’outil d’exportation WordPress produit un fichier XML contenant tout le contenu des articles, les commentaires et les métadonnées des auteurs. Un Administrateur peut déclencher cela silencieusement.
- Persistance de l’escalade de privilèges. Un attaquant qui obtient un accès Administrateur peut créer un nouveau compte Administrateur, puis supprimer les preuves — bloquant le propriétaire légitime.
- Abus de
unfiltered_html. Même sans accès aux plugins, un Administrateur peut injecter des balises<script>directement dans le contenu des articles, permettant des attaques XSS stockées contre les visiteurs du site.
Renforcement du rôle Administrateur
Au-delà de l’attribution des rôles, appliquez ces contrôles au niveau WordPress sur tout site en production :
Ajoutez ce qui suit à wp-config.php pour désactiver l’éditeur de fichiers intégré :
define( 'DISALLOW_FILE_EDIT', true );
define( 'DISALLOW_FILE_MODS', true ); // Also blocks plugin/theme installationRestreignez la zone d’administration WordPress par IP au niveau du serveur. Pour Nginx :
location /wp-admin/ {
allow 203.0.113.0/24;
deny all;
}Pour Apache, ajoutez à .htaccess :
<Files "wp-login.php">
Require ip 203.0.113.0/24
</Files>Imposez des mots de passe forts et l’authentification à deux facteurs à l’aide d’un plugin tel que WP 2FA ou Wordfence Login Security. Si votre site fonctionne sur un Serveur Dédié, envisagez de placer l’administration WordPress derrière un VPN ou un tunnel SSH plutôt que de l’exposer entièrement à l’internet public.
Protection du rôle Éditeur contre les abus
Le rôle Éditeur est nettement plus sûr que celui d’Administrateur, mais il n’est pas sans risque :
- Un Éditeur avec
unfiltered_htmlpeut injecter des pixels de suivi, des redirections d’affiliation ou des scripts malveillants dans le contenu des articles. Sur Multisite, cette capacité est supprimée — un argument solide pour utiliser un réseau Multisite lorsque vous avez de nombreux contributeurs de contenu. - Un Éditeur peut supprimer définitivement tout article ou page, y compris ceux qu’il n’a pas rédigés. Il n’existe pas de corbeille intégrée pour les pages. Utilisez une stratégie de révision ou de sauvegarde pour atténuer ce risque.
- Un Éditeur peut approuver des commentaires, y compris ceux contenant des liens spam, ce qui affecte le SEO et la réputation de votre site.
WordPress Multisite : Comment les rôles changent
Sur un réseau WordPress Multisite, la hiérarchie des rôles gagne un niveau supplémentaire : Super Administrateur. Le Super Admin se situe au-dessus de tous les Administrateurs au niveau du site et contrôle les paramètres à l’échelle du réseau, l’activation des plugins sur tous les sites et la création d’utilisateurs au niveau du réseau.
Sur Multisite, un Administrateur au niveau du site perd plusieurs capacités qui existent sur les installations mono-site, notamment la possibilité d’installer des plugins (seuls les Super Admins peuvent le faire à l’échelle du réseau) et la capacité unfiltered_html. Cela fait de Multisite une architecture plus défendable pour les agences gérant des sites clients ou les éditeurs gérant plusieurs propriétés éditoriales.
Si vous construisez une plateforme de publication multi-locataires, un VPS avec cPanel peut simplifier la couche de gestion côté serveur tandis que WordPress Multisite gère la séparation des rôles au niveau de l’application.
Rôles personnalisés : Quand ni Administrateur ni Éditeur ne convient
Les fonctions add_role() et add_cap() de WordPress vous permettent de définir des rôles avec précisément les capacités requises par votre flux de travail. Par exemple, un Éditeur Senior qui peut faire tout ce qu’un Éditeur peut faire plus gérer les utilisateurs (mais pas les plugins) peut être créé de manière programmatique :
add_role(
'senior_editor',
'Senior Editor',
array(
// Inherit all standard Editor capabilities
'read' => true,
'edit_posts' => true,
'edit_others_posts' => true,
'edit_published_posts' => true,
'publish_posts' => true,
'delete_posts' => true,
'delete_others_posts' => true,
'delete_published_posts' => true,
'edit_pages' => true,
'edit_others_pages' => true,
'edit_published_pages' => true,
'publish_pages' => true,
'delete_pages' => true,
'manage_categories' => true,
'moderate_comments' => true,
'upload_files' => true,
// Extended capability
'list_users' => true,
'edit_users' => true,
)
);Placez ce code dans un plugin spécifique au site (pas dans le functions.php d’un thème) afin que le rôle persiste lors des changements de thème. Les rôles sont stockés dans la base de données après la première inscription, donc add_role() n’a besoin de s’exécuter qu’une seule fois — encapsulez-le dans un hook d’activation de plugin en utilisant register_activation_hook().
Matrice de décision pratique pour l’attribution des rôles
Utilisez cette liste de contrôle avant d’attribuer un rôle :
Attribuez le rôle Administrateur uniquement si l’utilisateur :
- Possède le site ou a une responsabilité contractuelle pour son exploitation technique
- Doit installer, configurer ou mettre à jour des plugins et des thèmes
- Doit gérer d’autres comptes utilisateurs ou modifier les rôles des utilisateurs
- Nécessite l’accès aux paramètres WordPress, à la structure des permaliens ou à l’URL du site
- A l’authentification à deux facteurs activée et utilise un compte unique non partagé
- Comprend que
DISALLOW_FILE_MODSsera défini surtrueen production
Attribuez le rôle Éditeur si l’utilisateur :
- Est responsable de la qualité du contenu, des calendriers de publication ou de la révision éditoriale
- Doit gérer les articles et les pages rédigés par d’autres membres de l’équipe
- Doit pouvoir modérer les commentaires et gérer les médias
- N’a pas besoin — et ne devrait pas avoir — accès à un plugin, un thème ou un écran de paramètres
- Peut être un client, un freelance ou un prestataire dont vous ne pouvez pas entièrement contrôler la sécurité du compte
Envisagez un rôle personnalisé si :
- L’Éditeur intégré est trop restrictif (par exemple, l’utilisateur a besoin de
list_userspour un plugin de flux de travail éditorial) - L’Administrateur intégré est trop permissif (par exemple, un développeur qui a besoin d’accéder aux plugins mais ne doit pas toucher aux comptes utilisateurs)
- Vous gérez un réseau Multisite avec des responsabilités différenciées entre les sites
Pour les équipes gérant WordPress en parallèle avec des e-mails transactionnels, envisagez d’associer votre stratégie de rôles à une configuration dédiée d’Hébergement Email afin que les e-mails de notification WordPress (réinitialisations de mot de passe, nouvelles inscriptions d’utilisateurs, alertes de commentaires) transitent par un serveur de messagerie fiable et authentifié plutôt que par le sendmail par défaut du serveur d’hébergement — un point de défaillance de délivrabilité courant qui affecte le flux de travail de chaque rôle.
Si votre site WordPress gère du e-commerce, des adhésions ou des données utilisateur, assurez-vous que vos Certificats SSL sont à jour et correctement configurés. Un certificat expiré n’affecte pas seulement le SEO — il brise le contexte de sécurité du navigateur qui protège les identifiants de connexion Administrateur en transit.
Points techniques clés à retenir
- Les capacités WordPress sont stockées par utilisateur dans
wp_usermeta, pas codées en dur — elles peuvent être personnalisées sans modifier le rôle affiché d’un utilisateur. DISALLOW_FILE_EDITetDISALLOW_FILE_MODSdanswp-config.phpsont non négociables sur tout site en production avec plusieurs Administrateurs.- La capacité
unfiltered_htmlexiste pour les Administrateurs et les Éditeurs sur les installations mono-site. Multisite la supprime pour tous ceux qui sont en dessous du Super Admin. - Un Éditeur peut supprimer définitivement tout article ou page, y compris le contenu d’autres utilisateurs. Mettez en place une stratégie de sauvegarde ou de révision avant d’accorder ce rôle à quiconque en dehors de votre équipe principale.
- N’utilisez jamais un compte Administrateur partagé. Un compte par personne, authentification à deux facteurs obligatoire et journaux d’audit activés via un plugin tel que WP Activity Log.
- Les rôles personnalisés via
add_role()sont la solution correcte lorsqu’aucun rôle par défaut ne convient — ne sur-attribuez pas pour compenser une capacité manquante. - Sur Multisite, les Administrateurs au niveau du site ne peuvent pas installer de plugins. C’est une fonctionnalité, pas une limitation — c’est l’architecture correcte pour les environnements multi-locataires gérés.
Foire aux questions
Un Éditeur peut-il supprimer les articles d’un autre utilisateur dans WordPress ?
Oui. Le rôle Éditeur inclut delete_others_posts et delete_others_pages. Un Éditeur peut supprimer définitivement tout article ou page du site, quel qu’en soit l’auteur. Il n’existe pas d’étape de confirmation intégrée ni de corbeille pour les pages, donc cette action est irréversible sans sauvegarde.
Quelle est la différence entre Administrateur et Super Administrateur dans WordPress ?
Sur une installation WordPress mono-site, Administrateur est le rôle le plus élevé. Sur un réseau WordPress Multisite, le Super Administrateur se situe au-dessus de tous les Administrateurs au niveau du site et contrôle les paramètres à l’échelle du réseau, l’installation des plugins sur tous les sites et la possibilité d’ajouter ou de supprimer des sites du réseau. Un Administrateur au niveau du site sur Multisite ne peut pas installer de plugins ni utiliser unfiltered_html.
Puis-je donner à un Éditeur l’accès aux paramètres d’un plugin spécifique sans en faire un Administrateur ?
Oui. Utilisez add_cap() pour accorder une capacité spécifique à un utilisateur individuel, ou créez un rôle personnalisé qui inclut les capacités par défaut de l’Éditeur plus la capacité spécifique que le plugin enregistre. La plupart des plugins bien codés utilisent current_user_can( 'manage_options' ) ou une capacité personnalisée pour leurs pages de paramètres — vérifiez le code source du plugin pour identifier la capacité exacte requise.
Est-il sûr d’avoir plusieurs Administrateurs sur un site WordPress ?
Cela dépend entièrement de vos contrôles opérationnels. Plusieurs Administrateurs multiplient la surface d’attaque — chaque compte est un point d’entrée potentiel. Si plusieurs Administrateurs sont nécessaires, imposez l’authentification à deux facteurs pour tous, restreignez l’accès /wp-admin/ par IP au niveau du serveur, définissez DISALLOW_FILE_MODS sur true, et utilisez un plugin de journal d’activité pour auditer toutes les actions administratives.
Comment puis-je auditer les capacités qu’un utilisateur WordPress spécifique possède réellement ?
Interrogez directement la base de données ou utilisez un plugin comme Members ou User Role Editor. Pour une vérification programmatique, utilisez get_user_meta( $user_id, $wpdb->prefix . 'capabilities', true ) dans un script personnalisé ou le WordPress CLI :
wp user get <user_id> --field=roles
wp user list-caps <user_id>La commande wp user list-caps affiche toutes les capacités que l’utilisateur possède, y compris celles qui ont été accordées individuellement en dehors de leur rôle attribué — ce qui est le moyen le plus fiable d’auditer les comptes sur-provisionnés.
