Manual:Impedir l'accés
Per obtenir ajuda sobre la personalització dels drets d'usuari, vegeu Manual:Drets dels usuaris. Aquesta pàgina conté exemples útils per restringir l'accés.
Per obtenir informació sobre com editar LocalSettings.php, vegeu Manual:LocalSettings.php.
Wiki privat senzill
Per al cas d'ús comú d'"un wiki privat, per a un mateix i per a altres persones autoritzades", heu de:
# Desactiva la lectura per a usuaris anònims
$wgGroupPermissions['*']['read'] = false;
# Desactiva l'edició anònima
$wgGroupPermissions['*']['edit'] = false;
# Impedeix el registre de nous usuaris excepte pels administradors
$wgGroupPermissions['*']['createaccount'] = false;
Depenent de les extensions que tinguis instal·lades, és possible que vulguis incloure més pàgines a la llista blanca.
Per exemple, si fas servir l'extensió Extension:ConfirmAccount, probablement voldràs incloure Special:RequestAccount a la llista blanca.
Si l'idioma del contingut del teu wiki no és l'anglès, és possible que hagis d'utilitzar el nom traduït de les pàgines especials en qüestió.
Restringir la creació de comptes
Per restringir la creació de comptes, heu d'editar LocalSettings.php a la carpeta root (arrel) de la vostra instal·lació de MediaWiki.
# Impedeix el registre de nous usuaris excepte pels administradors
$wgGroupPermissions['*']['createaccount'] = false;
- Aneu a Special:Userlogin quan inicieu la sessió com a administrador.
- Feu clic a l'enllaç
Crea un compteper accedir al formulari de creació de comptes. - Introduïu un nom d'usuari i una adreça de correu electrònic i feu clic al botó "per correu electrònic". Tingueu en compte que necessiteu $wgEnableEmail=true o, si no, l'administrador ha de triar una contrasenya i enviar-la a l'usuari.
- El compte es crearà amb una contrasenya aleatòria que després s'enviarà per correu electrònic a l'adreça proporcionada (com amb la funció "contrasenya oblidada"). Es demanarà a l'usuari que canviï la contrasenya en iniciar sessió per primera vegada; quan ho faci, l'adreça de correu electrònic també es marcarà com a confirmada.
- Si feu clic al botó "crea un compte", haureu d'enviar manualment la contrasenya a l'usuari.
També podeu modificar el contingut del correu electrònic enviat als nous usuaris editant la pàgina MediaWiki:Createaccount-text.
Per evitar que fins i tot els administradors creïn comptes:
# Impedeix que qualsevol persona registri nous usuaris
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;
Per afegir un missatge a la part superior del formulari d'inici de sessió, modifiqueu MediaWiki:Loginprompt.
Restringir l'edició
Restringir l'edició de totes les pàgines
Els usuaris encara podran llegir les pàgines amb aquestes modificacions i podran veure el codi font mitjançant Special:Export/Nom de l'article o altres mètodes.
Vegeu també bug 1859
Fixed.
Vegeu Help:User rights i $wgGroupPermissions.
Si utilitzeu Extensió:AbuseFilter, qualsevol administrador de la wiki també pot establir diverses restriccions.
Alguns exemples de com protegir totes les pàgines de l'edició (no de la lectura) per part de certes classes d'usuaris:
Restringir l'edició anònima
Requereix que un usuari estigui registrat abans de poder editar.
$wgGroupPermissions['*']['edit'] = false;
Restringir l'edició per a tots els usuaris que no siguin administradors
Requereix que un usuari sigui membre del grup d'usuaris administradors (sysop).
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = true;
Restringir l'edició a absolutament tothom
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = false;
Restringir l'edició de tot un espai de noms
| MediaWiki version: | ≥ 1.10 |
A partir de la versió 1.10 de MediaWiki, és possible protegir espais de noms sencers mitjançant la variable $wgNamespaceProtection.
Exemples:
# Només permet als usuaris autoconfirmats editar l'espai de noms del projecte
$wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' );
# Només permet als administradors editar l'espai de noms "Policy"
$wgGroupPermissions['sysop']['editpolicy'] = true;
$wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );
Tingueu en compte que en l'últim cas se suposa que existeix un espai de noms personalitzat i que NS_POLICY és una constant definida igual al número de l'espai de noms.
Vegeu Manual:Ús d'espais de noms personalitzats i Manual:Namespace constants per obtenir una llista dels espais de noms principals de MediaWiki.
Restringir l'edició de certes pàgines específiques
Utilitzeu la funció Protegir. Per defecte, qualsevol administrador pot protegir pàgines perquè només altres administradors puguin editar-les. A la versió 1.9 i posterior, per defecte també poden protegir pàgines perquè només els usuaris "autoconfirmats" (amb comptes més antics que un període configurat) puguin editar-les. Això no requereix editar els fitxers de configuració.
Si voleu restringir l'edició a grups amb permisos específics, editeu $wgRestrictionLevels. Per evitar accions que no siguin editar i moure, utilitzeu $wgRestrictionTypes.
Restringir l'edició de totes les pàgines excepte unes poques
Per imposar una restricció general a l'edició de totes les pàgines, però permetre que algunes (com ara proves o sandboxes, pàgines de sol·licitud d'unió, etc.) siguin més editables, podeu utilitzar l'extensió EditSubpages. Això potser no encaixa massa sovint, però també podeu utilitzar el mètode Restringir l'edició de certes pàgines específiques esmentat anteriorment, amb tots els espais de noms protegits i només un d'especial editable per tothom que tingui totes les pàgines que vulgueu editables.
Restringir l'edició per a certs rangs d'adreces IP
Les escoles i altres institucions poden voler bloquejar totes les edicions que no siguin d'uns quants rangs d'adreces IP especificats. Per fer-ho, consulteu Manual:Block and unblock. L'única manera de fer-ho actualment sense modificar el codi és anar a Special:Blockip i bloquejar rangs d'adreces sistemàticament que no vulgueu que puguin editar. Això funcionarà per a totes les versions futures de MediaWiki. No funcionarà segons l'espai de noms.
Restringir l'edició per part d'un usuari en particular
Utilitzeu la funcionalitat de bloqueig d'usuaris per privar un usuari de tot l'accés d'edició. MediaWiki no inclou la possibilitat de donar drets directament a usuaris per separat; en canvi, els drets sempre es donen a un grup d'usuaris. No hi ha cap manera al programari principal de canviar els permisos d'usuaris en particular per restringir o permetre l'edició de pàgines en particular, excepte canviant el seu grup d'usuaris.
Restringir la creació de totes les pàgines
# Els usuaris anònims no poden crear pàgines
$wgGroupPermissions['*']['createpage'] = false;
# Només els usuaris amb comptes de quatre dies o més poden crear pàgines
# Requereix MW 1.6 o superior.
$wgGroupPermissions['*' ]['createpage'] = false;
$wgGroupPermissions['user' ]['createpage'] = false;
$wgGroupPermissions['autoconfirmed']['createpage'] = true;
Restringir la creació de pàgines en determinats espais de noms
Hi ha drets separats per crear pàgines de discussió (createtalk) i crear pàgines que no siguin de discussió (createpage). Si necessiteu un control per a un espai de noms més precís que això, no és possible al nucli de MediaWiki i requereix una extensió com ara Extension:Lockdown.
Restringir l'accés als fitxers carregats
Si heu habilitat la possibilitat de carregar fitxers, aquests seran servits directament pel servidor web subjacent. Com a resultat, l'accés al fitxer basat en comptes no té restriccions per defecte.
'read' to false only restricts access to wiki pages (such as articles and talk pages). Uploaded files (including images, files, docs) under the $wgUploadPath subdirectories will always remain publicly accessible via direct URL access by default.To restrict access to uploaded files, refer to the instructions in Manual:Image authorization and img_auth.php.
Exemple de restricció d'accés als fitxers carregats a la configuració del servidor
Si es carreguen fitxers sensibles a un wiki accessible per Internet, és possible que vulgueu afegir restriccions sobre des d'on s'hi pot accedir. A Apache, si la vostra xarxa local fos 10.1.2.*, podríeu restringir el servei de fitxers a adreces locals amb:
<Location /mediawiki/images>
Order deny,allow
Allow from 10.1.2.3
Deny from all
</Location>
Restringir la visualització
Restringir la visualització de totes les pàgines
Afegiu aquesta línia al vostre fitxer LocalSettings.php:
# Desactiva la lectura per part d'usuaris anònims
$wgGroupPermissions['*']['read'] = false;
# Però els permet llegir, per exemple, aquestes pàgines:
$wgWhitelistRead = [ "Main Page", "Help:Contents" ];
La configuració $wgWhitelistRead permet als usuaris veure la pàgina principal.
Si els noms de les pàgines tenen més d'una paraula, utilitzeu un espai " " entre elles, no un subratllat "_".
A més de la pàgina principal d'un lloc privat com aquest, podeu donar accés a la pàgina Canvis recents (si creieu que el seu contingut no és privat) per als lectors de canals afegint Special:Recentchanges a $wgWhitelistRead.
Si necessiteu protegir fins i tot la barra lateral, la pàgina principal o la pantalla d'inici de sessió per qualsevol motiu, es recomana que utilitzeu una autenticació de nivell superior com ara .htpasswd o equivalent.
Restringir la visualització de certes pàgines específiques
MediaWiki was not designed to support per-page or partial-page access restrictions. If you require this level of control, you are strongly advised to use a content management system that supports it natively.
Patches or third-party extensions claiming to provide access control, when in use with MediaWiki, may not work in all cases, potentially exposing confidential data. Use them at your own risk. Neither the MediaWiki developers nor the Wikimedia Foundation are responsible for any data leaks that may result. This message is added to all extensions of this nature and may not reflect the actual security status of this extension. For more information, see Security issues with authorization extensions. |
Per evitar que ningú més que els administradors visualitzi una pàgina, simplement es pot eliminar. Per evitar que fins i tot els administradors la visualitzin, es pot eliminar de manera més permanent mitjançant Manual:RevisionDelete. Per destruir completament el text de la pàgina, es pot eliminar manualment de la base de dades. En qualsevol cas, la pàgina no es pot editar mentre es troba en aquest estat i, per a la majoria de propòsits, ja no existeix.
Que una pàgina actuï normalment per a alguns usuaris, però sigui invisible per a altres, com és possible, per exemple, a la majoria de programari de fòrums, és una qüestió molt diferent. MediaWiki està dissenyat per a dos modes d'accés bàsics:
- Tothom pot veure totes les pàgines del wiki (amb la possible excepció d'unes quantes pàgines especials). Aquest és el mode utilitzat per la Viquipèdia i els seus projectes germans.
- Els usuaris anònims només poden veure la pàgina principal i la pàgina d'inici de sessió, i no poden editar cap pàgina. Això és bàsicament el mateix que l'anterior, pel que fa a la implementació tècnica (només una comprovació addicional per a cada vista de pàgina), i és per això que existeix. Aquest és el mode de funcionament utilitzat per certs wikis privats com els que utilitzen diversos comitès de Wikimedia.
Si teniu la intenció de tenir permisos de visualització diferents d'aquests, MediaWiki no està dissenyat per al vostre ús.
(Vegeu T3924
Declined.)
Les dades no estan necessàriament clarament delimitades per espai de noms, nom de pàgina o altres criteris, i hi ha moltes fuites que haureu de tapar si voleu que sigui així (vegeu security issues with authorization extensions per a un exemple).
Altres programes wiki poden ser més adequats per al vostre propòsit.
Heu estat advertit.
Si heu d'utilitzar MediaWiki, hi ha tres possibilitats bàsiques:
- Configurar el vostre wiki com a pàgines privades i incloure-les a la llista blanca de pàgines que seran públiques amb
$wgWhitelistReadal fitxer LocalSetting.php. Vegeu la secció anterior. - Configurar wikis separats amb una base de dades d'usuaris compartida, configurar-ne un com a visible i un com a no visible (vegeu més amunt) i fer enllaços interwiki entre ells.
- Instal·lar un arranjament (hack) o una extensió de tercers. Haureu de tornar-lo a aplicar cada vegada que actualitzeu el programari, i és possible que no s'actualitzi immediatament quan es publiquin noves correccions de seguretat o actualitzacions de MediaWiki. Els arranjaments de tercers, és clar, no són compatibles amb els desenvolupadors de MediaWiki, i si teniu problemes no hauríeu de preguntar a MediaWiki-l, #mediawiki o altres canals de suport oficials. Diversos arranjaments s'enumeren a Category:Page specific read access extensions. Llegiu sobre security issues with authorization extensions si teniu previst utilitzar-ne una.
Restricting exporting
See also: Manual:Parameters to Special:Export
It is not possible to export the contents of a page that cannot be read since r19935.
Removing the Login link from all pages
One can remove the login/create-account link from the upper right corner of all pages, as users can still go to Special:SpecialPages → Special:UserLogin to log in.
In LocalSettings.php use (tested with MediaWiki 1.43.0 LTS):
$wgHooks['SkinTemplateNavigation::Universal'][] = function ( $skinTemplate, &$links ) {
unset( $links['user-menu']['createaccount'] );
unset( $links['user-menu']['login'] );
unset( $links['user-menu']['login-private'] );
unset( $links['user-menu']['anoncontribs'] );
};
Removing accounts
If you want to completely remove access to a user, e.g. on a simple private wiki, it's not possible to simply delete the account (unless no edits have been made); you can block it, but the user will still be able to read pages (unless $wgBlockDisablesLogin is set).
However, using User Merge and Delete extension you can merge the account in another one and delete the former; the original account will then "disappear".
If you want to preserve history readability (i.e., to have edits from the user to be still shown under their name), you can create a new account e.g. with username "OriginalUserName (deactivated)" and then merge "OriginalUserName" into the former, or even rename "OriginalUserName" into "AnotherUserName", then create an account under "OriginalUserName" and merge "AnotherUserName" into it: in this manner, "OriginalUserName" will be completely "usurped" (if you've set a non-null password).
Other restrictions
You may want to have pages editable only by their creator, or ban viewing of history, or any of a number of other things. None of these features are available in an unhacked version of MediaWiki. If you need more fine-grained permissions, see the #See also section for links to other wiki packages that are designed for this, as well as hacks that attempt to contort MediaWiki into something it's not designed to be but may work anyway.
See also
There are some related manual/help pages that may be of interest:
- Manual:LocalSettings.php
- Manual:$wgGroupPermissions
- Manual:$wgRestrictionTypes
- Manual:$wgRestrictionLevels
- Manual:$wgNamespaceProtection
- Manual:$wgEmailConfirmToEdit
- Manual:$wgNonincludableNamespaces
- Manual:Drets dels usuaris
- Help:User rights and groups
Other wiki software may have better support for fine-grained access control than MediaWiki:
If you want better access control but want to use MediaWiki, this is a list of extensions and hacks to allow restrictions not possible in the software proper. These hacks may be out-of-date (check the version they're for). Please don't ask in official MediaWiki support channels if something goes wrong with a third-party hack.
- Extension:Flagged Revisions
- Extension:Moderation
- Extension:Approved Revs
- Extension:Lockdown
- Extension:AuthorProtect
- Extension:EditSubpages – restricts anonymous users from editing most pages
- Extension:NSFileRepo