Manuel:Empêcher l'accès
Pour l'aide concernant la personnalisation des droits utilisateurs, voir Manuel:Droits utilisateurs . Cette page contient des exemples utiles pour restreindre l'accès.
Pour plus d'informations sur la façon de modifier LocalSettings.php
, voir Manuel:LocalSettings.php .
Simple wiki privé
Pour le cas d'utilisation habituel d'un "wiki privé, pour soi-même et approuvé pour les autres", vous devez :
# Désactiver le lecture par les utilisateurs anonymes
$wgGroupPermissions['*']['read'] = false;
# Désactiver les modifications anonymes
$wgGroupPermissions['*']['edit'] = false;
# Empêcher les enregistrements de nouveaux utilisateurs sauf par les opérateurs système
$wgGroupPermissions['*']['createaccount'] = false;
En fonction des extensions que vous avez installées, vous pouvez mettre en liste blanche davantage de pages. Par exemple si vous utilisez l'extension Extension:ConfirmAccount , vous voulez éventuellement que Special:RequestAccount soit en liste blanche. Si la langue du contenu de votre wiki n'est pas l'anglais, il est possible que vous ayiez à utiliser le nom traduit des pages spéciales en question.
Restreindre la création de compte
Pour restreindre la création de compte, vous avez besoin de modifier LocalSettings.php dans le chemin de la racine de votre installation MediaWiki.
# Empêcher les enregistrements de nouveaux utilisateurs sauf par les opérateurs système
$wgGroupPermissions['*']['createaccount'] = false;
- aller à Special:Userlogin, lorsque vous serez connecté en tant qu'opérateur système.
- cliquer sur le lien "Créer un compte" pour arriver dans le formulaire de création de compte.
- entrer un nom d'utilisateur et une adresse de courriel, et cliquez sur le bouton "par courriel". Notez que vous avez besoin que $wgEnableEmail=true sinon l'opérateur système doit choisir un mot de passe et l'envoyer à l'utilisateur.
- le compte sera créé avec un mot de passe aléatoire qui est ensuite envoyé par courriel à l'adresse indiquée (comme pour la fonction « mot de passe oublié » ). Il sera demandé à l'utilisateur de changer le mot de passe lors de sa première connexion; une fois cela fait, l'adresse courriel sera également marquée comme étant confirmée.
- Quand vous cliquez à la place sur le bouton « créer un compte » , vous devez manuellement envoyer à l'utilisateur son mot de passe. Si vous avez défini $wgMinimalPasswordLength=0 (configuration par défaut jusqu'à la version 1.15) et que vous avez laissé le mot de passe vide, l'utilisateur sera averti d'une demande de confirmation de son adresse courriel mais ne pourra pas accéder à Special:Confirmemail pour faire sa confirmation. A la place, l'utilisateur obtiendra une erreur (à moins que vous ne l'ayiez ajouté à $wgWhitelistRead ); l'utilisateur pourra se connecter avec un mot de passe vide puis pourra confirmer son adresse courriel, mais le mot de passe ne sera pas réinitialisé (il devra l'être manuellement).
Il peut être nécessaire de modifier le texte affiché quand un non-utilisateur essaie de se connecter. Ceci peut être fait sur MediaWiki:Nosuchuser, lors de la connexion en tant qu'opérateur système. Utiliser du texte brut sans aucun formatage spécial, parce que la mise en forme est ignorée et que le texte est affiché littéralement. (peut avoir changé, voir bug 12952).
Vous pouvez aussi modifier le contenu du courriel envoyé aux nouveaux utilisateurs en modifiant la page MediaWiki:Createaccount-text.
Pour empêcher même les opérateurs système de créer des comptes :
# Empêcher les enregistrements de nouveaux utilisateurs par quiconque
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;
Pour ajouter un message en haut du formulaire de connexion, modifiez MediaWiki:Loginprompt.
Restreindre les modifications
Restreindre la modification de toutes les pages
Les utilisateurs pourront encore lire les pages avec ces modifications, et afficher leur source en utilisant Special:Export/Article name ou d'autres méthodes. Voir aussi bug 1859.
Voir Help:User rights et Manuel:$wgGroupPermissions . Si vous utilisez Extension:AbuseFilter , tout administrateur wiki peut aussi mettre en place diverses restrictions.
Quelques exemples sur la façon de se protéger contre la modification de toutes les pages (et non la lecture) par certaines classes d'utilisateurs :
Restreindre les modifications anonymes
Nécessite qu'un utilisateur soit enregistré avant de pouvoir modifier.
$wgGroupPermissions['*']['edit'] = false;
Restreindre les modifications aux utilisateurs administrateurs
Nécessite qu'un utilisateur soit un membre du groupe des utilisateurs administrateurs (opérateurs système).
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = true;
Restreindre absolument toute modification
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = false;
Restreindre la modification d'un espace de noms entier
Version de MediaWiki : | ≥ 1.10 |
A partir de MediaWiki version 1.10, il est possible de protéger entièrement les espaces de noms en utilisant la variable $wgNamespaceProtection . Exemples:
# N'autorise que les utilisateurs auto-confirmés à modifier l'espace de noms du projet
$wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' );
# Ne laissez personne modifier les pages qui ne sont pas des pages de conversation avant qu'ils n'aient confirmé leur
# addresse courriel (en supposant que nous n'avons pas d'espaces de noms personnalisés et permettetnde modifier
# à partir des utilisateurs qui n'appartiennent pas au groupe 'emailconfirmed' pour commencer)
# Note pour 1.13 : le groupe 'emailconfirmed' et les droits ont été supprimés des valeurs par défaut
# initialiser si vous voulez l'utiliser, vous devrez le réactiver manuellement
$wgNamespaceProtection[NS_MAIN] = $wgNamespaceProtection[NS_USER] =
$wgNamespaceProtection[NS_PROJECT] = $wgNamespaceProtection[NS_IMAGE] =
$wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP] =
$wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' );
# Ne permet qu'aux sysops de modifier l'espace de noms ''Policy''
$wgGroupPermissions['sysop']['editpolicy'] = true;
$wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );
Notez que dans le dernier cas on suppose qu'un espace de noms personnalisé existe et que NS_POLICY
est une constante définie égale au numéro de l'espace de noms.
Voir Manuel:Utiliser des espaces de noms personnalisés et Manuel:Constantes des espaces de noms pour une liste des espaces de noms du coeur de MediaWiki.
Restreindre la modification de certaines pages spécifiques
Utiliser la fonctionalité de protection . Par défaut, tout opérateur système peut protéger les pages, donc uniquement les autres opérateurs système peuvent les modifier. Dans la version 1.9 et ultérieurement, par défaut ils peuvent également protéger les pages de telle façon que seulement les utilisateurs « autoconfirmés » (avec des comptes plus anciens qu'une période définie) puissent les modifier. Pas besoin de modifier les fichiers de configuration pour cela.
Si vous voulez restreindre les modifications aux groupes avec des droits spécifiques, modifiez $wgRestrictionLevels . Pour empêcher les actions autres que la modification et le déplacement, utilisez $wgRestrictionTypes .
Restreindre la modification de toutes sauf quelques pages
Pour imposer une restriction générale à l'édition de toutes les pages, mais en autoriser quelques-unes (telles que les bacs à sable, les pages des demandes, etc.), vous pouvez utiliser l'extension EditSubpages . Cela peut ne pas convenir très souvent, mais vous pouvez également utiliser la méthode Restreindre l'édition de certaines pages mentionnée ci-dessus, avec tous les espaces de noms protégés, et seulement celui qui être édité par tout le monde et contenant toutes les pages souhaitées éditables.
Restreindre la modification pour cetains intervalles d'adresses IP
Les écoles et autres institutions peuvent souhaiter bloquer toutes les modifications, à l'exception de quelques plages spécifiées adresse IP. Pour faire ceci, voir Manuel:Bloquer et débloquer . La seule façon de faire cela à l'heure actuelle sans modifier le code est d'aller à Special:Blockip et systématiquement bloquer l'intervalle de chacune des plages d'adresses que vous ne voulez pas voir éditée. Ceci fonctionnera avec toutes les versions futures de MediaWiki. Ceci ne fonctionnera pas selon l'espace de noms.
Restreindre le modification par un utilisateur particulier
Utiliser la fonctionalité de blocage de l'utilisateur pour lui ôter tout droit d'accès en modification. MediaWiki n'inclut pas la possibilité de donner des droits à des utilisateurs séparés directement; au lieu de cela, les droits sont toujours accordés à un groupe d'utilisateurs. Le logiciel principal ne contient aucun moyen de modifier les autorisations d'utilisateurs particuliers afin de restreindre ou d'autoriser la modification de pages particulières, sauf si on modifie leur groupe d'utilisateurs.
Restreindre la création de page
# Les utilisateurs anonymes ne peuvent pas créer des pages
$wgGroupPermissions['*']['createpage'] = false;
# Seuls les utilisateurs ayant des comptes âgés de quatre jours ou plus, peuvent créer des pages
# Nécessite MW 1.6+
$wgGroupPermissions['*' ]['createpage'] = false;
$wgGroupPermissions['user' ]['createpage'] = false;
$wgGroupPermissions['autoconfirmed']['createpage'] = true;
Restriction de la création de pages dans certains espaces de noms
Il existe des droits séparés pour créer des pages de discussion (createtalk) et des pages qui ne le sont pas (createpage). Si vous avez besoin d'un contôle plus fin que cela par espace de noms, cela n'est pas possible au coeur de MediaWiki, et nécessite une extension telle que Extension:Lockdown .
Restreindre l'accès aux fichiers téléversés
Si vous avez activé la possibilité de téléverser des fichiers, ils seront pris en charge directement par le serveur web correspondant. Comme résultat, l'accès au fichier en fonction du compte n'est pas restreint par défaut.
Exemple de restriction d'accès aux fichiers téléversés dans la configuration du serveur
Si des fichiers sensibles sont téléversés sur un wiki accessible par internet, vous pouvez ajouter des restrictions sur l'endroit de où ils peuvent être demandés. Sous Apache, si votre réseau local était 10.1.2.*, vous pouvez restreindre la mise a disposition des fichiers aux adresses locales par :
<Location /mediawiki/images> Order deny,allow Allow from 10.1.2.3 Deny from all </Location>
Restreindre l'affichage
Restreindre l'affichage de toutes les pages
Ajoutez cette ligne à votre fichier LocalSettings.php
:
# Désactiver le lecture par les utilisateurs anonymes
$wgGroupPermissions['*']['read'] = false;
# Mais autorisez-les à lire par exemple ces pages :
$wgWhitelistRead = [ "Main Page", "Help:Contents" ];
Définir $wgWhitelistRead
permet aux utilisateurs de voir la page d'accueil.
Si les noms de page ont plus d'un mot, utilisez un espace « » entre eux, mais pas un trait de soulignement « _ ».
En plus de la page d'accueil d'un tel site privé, vous pouvez donner accès à la page des modifications récentes (si vous pensez que son contenu n'est pas privé) pour les lecteurs de flux, en ajoutant Special:Recentchanges à $wgWhitelistRead
.
Si vous devez protéger même la barre latérale, la page principale ou l'écran de connexion pour une raison quelconque, il est recommandé d'utiliser une authentification de niveau supérieur, telle que .htpasswd ou équivalente.
Restreindre l'affichage de certaines pages spécifiques
Si vous avez besoin de restrictions d'accès par page ou par portion de page, il vous est conseillé d'installer un paquet de gestion du contenu approprié. MediaWiki n'est pas écrit pour fournir des restrictions d'accès sur une page donnée, et la plupart des contournements ou patchs promettant de l'ajouter auront de fortes chances d'avoir des failles, ce qui pourrait mener à des divulgations de données confidentielles. Nous ne sommes pas responsable d'une fuite quelconque.
Pour plus de détails, voir Problèmes de sécurité avec les extensions d'autorisation |
Pour empêcher quiconque sauf les opérateurs système de voir une page, elle peut être simplement supprimée . Pour empêcher même les sysops de l'afficher, il peut être supprimé de manière plus permanente en utilisant Suppression des révisions . Pour effacer complètement le texte de la page, elle peut être supprimée manuellement de la base de données. En tous cas, la page ne peut être modifiée dans cet état, et pour tout motif, elle n'existe plus.
Faire en sorte qu'une page agisse normalement pour certains utilisateurs, mais reste invisible pour d'autres, comme cela est par exemple possible dans la plupart des logiciels de forum, est un sujet très différent. MediaWiki est conçu pour deux modes d'accès de base :
- Chacun peut voir toutes les pages individuellement sur le wiki (excepté pour quelques pages spéciales). C'est le mode utilisé par Wikipedia et ses projets frères.
- Les utilisateurs anonymes ne peuvent qu'afficher la page d'accueil et la page de connexion, mais ne peuvent pas modifier de page. C'est fondamentalement la même chose que ce qui précède, en termes de mise en œuvre technique (juste une vérification supplémentaire pour chaque affichage de page), c'est pourquoi elle existe. C'est le mode opératoire utilisé par certains wikis privés tels que ceux utilisés par différents comités Wikimedia.
Si vous devez avoir différents droits d'affichage que ceux-là, MediaWiki n'est pas conçu pour votre utilisation. (Voir T3924.) Les données ne sont pas nécessairement clairement délimitées par l'espace de noms, le nom de la page, ou d'autres critères, et il existe beaucoup d'endroits à modifier si vous voulez qu'il en soit ainsi (voir Problèmes de sécurité avec les extensions d'autorisation pour exemple). D'autres logiciels wiki peuvent davantage convenir à vos objectifs. Vous avez été averti. Si vous devez utiliser MediaWiki, il existe trois possibilités de base:
- configurez votre wiki en privé et mettez en liste blanche les pages spécifiques qui seront publiques, avec
$wgWhitelistRead
dans le fichier LocalSetting.php. Voir la section ci-dessus. - configurez des wikis distincts avec une base de données utilisateur partagée , configurez-en un comme visible et l'autre comme invisible (voir ci-dessus) et établissez des liens interwiki entre eux.
- installer une bidouille tiers ou une extension. Vous devrez le réappliquer à chaque mise à niveau du logiciel. Il se peut que le logiciel ne soit pas mis à jour immédiatement lorsque de nouveaux correctifs de sécurité ou des mises à niveau de MediaWiki sont publiées. Les bidouilles tierces ne sont bien sûr pas prises en charge par les développeurs de MediaWiki, et si vous rencontrez des problèmes, vous ne devez pas poser de question à MediaWiki-l, #mediawiki ni aux autres canaux de support officiels. Les nombres de greffons sont listés dans Catégorie:Page des droits utilisateur d'extensions spécifiques . Lisez à propos de Problèmes de sécurité avec les extensions d'autorisation si vous envisagez d'utiliser l'un d'eux.
Restreindre l'exportation
Voir aussi : Manuel:Paramètres de Special:Export
Il n'est pas possible d'exporter le contenu d'une page qui ne peut pas être lue depuis r19935 .
Retrait du lien de connexion sur toutes les pages
Il est possible d'enlever le lien de connexion/création de compte du coin supérieur droit sur toutes les pages, car les utilisateurs peuvent toujours aller à Special:SpecialPages > Special:UserLogin pour se connecter. Dans LocalSettings.php utilisez (testé avec MediaWiki 1.16)
function NoLoginLinkOnMainPage( &$personal_urls ){
unset( $personal_urls['login'] );
unset( $personal_urls['anonlogin'] );
return true;
}
$wgHooks['PersonalUrls'][]='NoLoginLinkOnMainPage';
Retrait des comptes
Si vous souhaitez supprimer complètement l’accès à un utilisateur, par exemple, sur un simple wiki privé, il n'est pas possible de supprimer simplement le compte (à moins qu'aucune modification n'ait été effectuée ); vous pouvez le bloquer , mais il pourra encore lire les pages. Cependant, en utilisant l’extension User Merge and Delete , vous pouvez fusionner le compte dans un autre et supprimer l’ancien; le compte d'origine va alors « disparaître ». Si vous souhaitez préserver la lisibilité de l'historique (c'est-à-dire que les modifications de l'utilisateur soient toujours affichées sous son nom), vous pouvez créer un nouveau compte, par exemple avec le nom d'utilisateur « OriginalUserName (désactivé) » puis fusionnez « OriginalUserName » avec l'ancien, ou utilisez même l'extension Renameuser pour renommer « OriginalUserName » en « AnotherUserName », puis créer un compte sous « OriginalUserName » et y fusionner « AnotherUserName ». De cette manière, « OriginalUserName » sera complètement « usurpé » (si vous avez défini un mot de passe non nul).
Depuis MediaWiki 1.16.0, il est possible d'initialiser $wgBlockDisablesLogin à vrai pour empêcher l'accès et la lecture aux utilisateurs bloqués.
Autres restrictions
Vous voudrez peut-être que les pages ne soient modifiables que par leur créateur, ou interdire la visualisation de l'historique, ou de plusieurs autres choses. Aucune de ces fonctionalités n'est disponible dans la version originale de MediaWiki. Si vous avez besoin d'autorisations plus détaillées, consultez la section #Voir aussi pour des liens vers d'autres packages wiki conçus à cet effet, ainsi que les bidouilles qui tentent de contourner MediaWiki en quelque chose qu'il n'est pas conçu mais peut fonctionner quand même.
Voir aussi
Il existe des pages relatives de manuel et d'aide qui peuvent avoir un intérêt pour vous :
- Manuel:LocalSettings.php
- Manuel:$wgGroupPermissions
- Manuel:$wgRestrictionTypes
- Manuel:$wgRestrictionLevels
- Manuel:$wgNamespaceProtection
- Manuel:$wgEmailConfirmToEdit
- Manuel:$wgNonincludableNamespaces
- Manuel:Droits utilisateurs
- Aide:Droits utilisateur et groupes
D'autres logiciels wiki peuvent présenter une meilleure prise en charge pour le contrôle d'accès plus fin que MediaWiki:
- MoinMoin
- TWiki
- TikiWiki - possède un contrôle d'accès complètement configurable des fonctionalités et des niveaux de permission.
Si vous voulez un meilleur contrôle d'accès tout en utilisant MediaWiki, voici une liste d' extensions et de bidouilles pour autoriser les restrictions impossibles dans le propre logiciel. Ces produits peuvent être périmés (vérifiez la version à laquelle ils s'appliqent). Veuillez ne pas demander d'aide sur les canaux du support officiel MediaWiki lorsque le problème que vous avez concerne une bidouille tierce.
- Extension:Flagged Revisions
- Extension:Moderation
- Extension:Approved Revs
- Extension:Lockdown
- Extension:AuthorProtect
- Extension:EditSubpages - empêche les utilisateurs anonymes de modifier la plupart des pages
- Extension:NSFileRepo