Jump to content

Manual:Impedir l'accés

From mediawiki.org
This page is a translated version of the page Manual:Preventing access and the translation is 86% complete.

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:

Atenció Atenció: No utilitzeu el codi d'exemple sense proves i personalitzacions exhaustives. El codi proporcionat és bàsic i incomplet per a l'ús real. Potser no bloquejarà l'accés de totes les maneres possibles, podria causar problemes amb altres extensions i podria mostrar accidentalment informació privada.
# 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;
Podeu utilitzar l'extensió ConfirmAccount si voleu configurar una cua de confirmació de comptes. (Si no, podeu continuar de la manera següent.)
Els administradors encara podran crear nous usuaris de la manera següent:
  1. Aneu a Special:Userlogin quan inicieu la sessió com a administrador.
  2. Feu clic a l'enllaç Crea un compte per accedir al formulari de creació de comptes.
  3. 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.
  4. 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 Yes 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

Revoca el dret d'edició, ja que impedeix que els usuaris afectats creïn noves pàgines i pàgines de discussió.
# 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.

Setting the user right '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

Atenció Atenció: Si voleu que els usuaris anònims no puguin veure el codi/marcatge wiki, no els heu de permetre editar cap pàgina (vegeu § Restringir l'edició de totes les pàgines anterior). Si poden editar qualsevol pàgina, poden utilitzar la inclusió de plantilles per veure fins i tot les pàgines que no poden editar. Això es pot evitar mitjançant $wgNonincludableNamespaces
Atenció Atenció: Aquest mètode permet a qualsevol visitant veure el wiki després de crear un compte. Potser voldreu combinar-ho amb § Restringir la creació de comptes anterior.
Atenció Atenció: Les imatges carregades continuaran sent visibles per a qualsevol persona que conegui el nom del directori d'imatges. O bé dirigiu $wgUploadPath a l'script img_auth.php i seguiu les instruccions de Manual:Image authorization , o bé utilitzeu algun mètode extern per protegir les imatges, com ara .htaccess.
Atenció Atenció: Les pàgines wiki com MediaWiki:Common.css i MediaWiki:Gadget-foo.css poden formar part d'un mòdul públic ResourceLoader i, per tant, el seu codi font pot estar exposat a través de load.php . Desactiveu $wgUseSiteJs i $wgUseSiteCss per desactivar aquesta funcionalitat.
Si els usuaris anònims no poden veure la vostra pàgina, els motors de cerca tampoc. El vostre lloc no s'indexarà a Google.

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.

Atenció Atenció: If you are running a private wiki , it is required that you upgrade to MediaWiki version 1.39.13 , 1.43.2 , 1.44.0 or a later, to protect your wiki. A security vulnerability (CVE-2025-6590) affects older versions, allowing any user to view all pages on private wikis. There is no workaround available.[1]
Tot i que Special:Listusers no estarà disponible, es pot determinar si un nom d'usuari és correcte a partir d'errors d'inici de sessió d'usuari. És recomanable proporcionar un text comú per a MediaWiki:wrongpassword i MediaWiki:nosuchusershort.

Restringir la visualització de certes pàgines específiques

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:

  1. 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.
  2. 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 N 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:

  1. Configurar el vostre wiki com a pàgines privades i incloure-les a la llista blanca de pàgines que seran públiques amb $wgWhitelistRead al fitxer LocalSetting.php. Vegeu la secció anterior.
  2. 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.
  3. 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.

One can remove the login/create-account link from the upper right corner of all pages, as users can still go to Special:SpecialPagesSpecial: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:

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.