Manual:Preventing access/es
Para obtener ayuda sobre la personalización de los derechos de usuario, consulta Manual:Derechos de usuarios . Esta página contiene ejemplos útiles para restringir el acceso.
Para más información sobre cómo editar LocalSettings.php
, consulta Manual:LocalSettings.php .
Para una mejor restricción de accesos, considera Extension:AccessControl o Extensión:ConfirmAccount .
Wiki privado sencillo
Para el caso de uso común de «un wiki privado, para uno mismo y otros usuarios autorizados», debes:
- § Restringir la visualización
- § Restringir la edición
- § Restringir la creación de cuentas de usuario
# Deshabilitar la lectura para usuarios anónimos
$wgGroupPermissions['*']['read'] = false;
# Deshabilitar la edición para usuarios anónimos
$wgGroupPermissions['*']['edit'] = false;
# Impedir nuevos registros de usuarios excepto por operadores del sistema
$wgGroupPermissions['*']['createaccount'] = false;
Dependiendo de las extensiones que tengas instaladas, puede que desees añadir más páginas a la lista blanca.
Por ejemplo, si utilizas la extensión Extensión:ConfirmAccount , probablemente quieras Special:RequestAccount
esté en la lista blanca.
Si el idioma de contenido de tu wiki no es el inglés, puede que tengas que utilizar el nombre traducido de las páginas especiales en cuestión.
Restringir la creación de cuentas
Para restringir la creación de cuentas, debes editar LocalSettings.php
en la ruta raíz de tu instalación de MediaWiki.
# Impedir nuevos registros de usuarios excepto por operadores del sistema
$wgGroupPermissions['*']['createaccount'] = false;
- Ve a Special:Userlogin habiendo iniciado sesión como operador de sistema.
- Haz clic en el enlace «Crear cuenta» para acceder al formulario de creación de cuentas.
Introduce un nombre de usuario y una dirección de correo electrónico y haz clic en el botón «por correo electrónico». Ten en cuenta que necesitarás que $wgEnableEmail=true o en otro caso el operador de sistema tendrá que escoger una contraseña y enviársela al usuario.
- Se creará la cuenta con una contraseña aleatoria que se enviará a la dirección dada de correo electrónico (al igual que con la funcionalidad de «¿has olvidado tu contraseña?»). Ante el primer inicio de sesión, se le pedirá al usuario que cambie la contraseña; una vez hecho esto, también se marcará la dirección de correo electrónico como confirmada.
- Si en su lugar haces clic en el botón «crear cuenta», deberás enviar la contraseña al usuario de forma manual.
También puedes modificar el contenido del correo enviado a los nuevos usuarios editando la página MediaWiki:Createaccount-text.
Para impedir incluso a los operadores de sistema la creación de cuentas:
# Impedir nuevos registros de usuarios por cualquier usuario.
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['sysop']['createaccount'] = false;
Para añadir un mensaje a la parte superior del formulario de inicio de sesión, modifica MediaWiki:Loginprompt.
Restringir la edición
Restringir la edición de todas las páginas
Los usuarios seguirán pudiendo leer páginas con estas modificaciones, y podrán ver el código fuente recurriendo a Special:Export/Nombre del artículo u otros métodos.
Véase también bug 1859 Fixed.
Véanse Help:User rights y $wgGroupPermissions
.
Si utilizas Extensión:AbuseFilter , cualquier administrador del wiki también podrá establecer diversas restricciones.
Algunos ejemplos de cómo proteger todas las páginas de la edición (no de la lectura) por parte de determinadas clases de usuarios:
Restringir la edición anónima
Requiere que un usuario esté registrado para poder editar.
$wgGroupPermissions['*']['edit'] = false;
Restringir la edición únicamente a los operadores de sistema
Requiere que un usuario sea miembro del grupo de administradores (operadores de sistema).
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = true;
Restringir la edición a absolutamente todos los usuarios
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['sysop']['edit'] = false;
Restringir la edición de un espacio de nombres completo
Versión de MediaWiki: | ≥ 1.10 |
A partir de la versión 1.10 de MediaWiki, es posible proteger espacios de nombres completos mediante la variable $wgNamespaceProtection
.
Ejemplos:
# Permitir solo a los usuarios autoconfirmados la edición del espacio de nombres Project
$wgNamespaceProtection[NS_PROJECT] = array( 'autoconfirmed' );
# No permitas a nadie editar páginas que no sean de discusión hasta que hayan confirmado su dirección de correo electrónico (asumiendo que no tengamos espacios de nombres personalizados y que permitamos ediciones de usuarios que no hayan confirmado su dirección de correo electrónico, para empezar)
# Nota para 1.13: el grupo «emailconfirmed» y sus permisos fueron eliminados de la configuración predeterminada; si deseas utilizarlo, tendrás que volver a habilitarlo a mano
$wgNamespaceProtection[NS_MAIN] = $wgNamespaceProtection[NS_USER] =
$wgNamespaceProtection[NS_PROJECT] = $wgNamespaceProtection[NS_IMAGE] =
$wgNamespaceProtection[NS_TEMPLATE] = $wgNamespaceProtection[NS_HELP] =
$wgNamespaceProtection[NS_CATEGORY] = array( 'emailconfirmed' );
# Permitir solo a los operadores de sistema editar el espacio de nombres «Policy»
$wgGroupPermissions['sysop']['editpolicy'] = true;
$wgNamespaceProtection[NS_POLICY] = array( 'editpolicy' );
Ten en cuenta que en el último caso se asume que exista un espacio de nombres personalizado y que NS_POLICY
sea una constante definida igual al identificador del espacio de nombres.
Véanse Manual:Cómo usar espacios de nombres personalizados y Manual:Constantes de espacios de nombres para una lista de los espacios de nombres del núcleo de MediaWiki.
Restringir la edición de determinadas páginas específicas
Utiliza la funcionalidad de protección . Por defecto, cualquier operador de sistema puede proteger páginas, por lo que solo los operadores de sistema pueden editarlas. En 1.9 y posteriores, por defecto, también pueden proteger las páginas para que solo los usuarios «autoconfirmados» (con cuentas de mayor antigüedad que un plazo configurado) puedan editarlas. Esto no requiere editar archivos de configuración.
Si deseas restringir la edición a grupos con permisos específicos, edita $wgRestrictionLevels . Para impedir acciones distintas de la edición y el traslado, utiliza $wgRestrictionTypes .
Restringir la edición de todas las páginas menos unas pocas
Para imponer una restricción general a la edición de todas las páginas, pero permitir que algunas (como zonas de pruebas, páginas de solicitudes, etc.) se puedan editar con mayor liberalidad, puedes utilizar la extensión EditSubpages . Puede que no se ajuste muy a menudo a las necesidades, pero también puedes utilizar el método de restringir la edición de determinadas páginas específicas descrito anteriormente, con todos los espacios de nombres protegidos con una sola excepción, editable por cualquier usuario y que contenga todas las páginas que desees que sean editables.
Restringir la edición para determinados rangos de direcciones IP
Los centros educativos y otras instituciones pueden querer bloquear todas las ediciones que no provengan de unos pocos rangos especificados de direcciones IP. Para hacer esto, véase Manual:Bloquear y desbloquear . La única forma de hacer esto en la actualidad sin modificar el código es ir a Special:Blockip y bloquear por rango cada uno de los rangos de direcciones IP que no quieras que puedan editar. Esto funcionará para todas las versiones futuras de MediaWiki. No funcionará en función del espacio de nombres.
Restringir la edición por parte de un usuario particular
Utiliza la funcionalidad de bloqueo de usuarios para privar a un usuario de todo acceso a la edición de páginas. MediaWiki no incluye una posibilidad de dar directamente permisos a usuarios individuales, sino que los permisos siempre se otorgan a un grupo de usuarios. El software de base no dispone de modo alguno de cambiar los permisos de usuarios particulares para restringir o permitir la edición de determinadas páginas, excepto cambiar su grupo de usuarios.
Restringir la creación de todas las páginas
# Los usuarios anónimos no pueden crear páginas
$wgGroupPermissions['*']['createpage'] = false;
# Solo los usuarios cuyas cuentas tengan una antigüedad de cuatro o más días pueden crear páginas
# Requiere MW 1.6 o superior.
$wgGroupPermissions['*' ]['createpage'] = false;
$wgGroupPermissions['user' ]['createpage'] = false;
$wgGroupPermissions['autoconfirmed']['createpage'] = true;
Restringir la creación de páginas en determinados espacios de nombres
Hay derechos separados para crear páginas de discusión (createtalk) y para crear páginas que no lo sean (createpage). Si necesitas un control aún más fino en función del espacio de nombres, no es posible en el núcleo de MediaWiki, sino que requiere una extensión tal como Extension:Lockdown .
Restringir el acceso a archivos subidos
Si has habilitado la posibilidad de subir archivos, el servidor web subyacente será el encargado de servirlos directamente. Como consecuencia de ello, el acceso a los archivos en función de la cuenta es irrestricto por defecto.
'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: Autorización de imagen and img_auth.php .
Ejemplo de restricción de acceso a archivos subidos en la configuración del servidor
En caso de que se suban archivos sensibles a un wiki accesible por Internet, puede que desees añadir restricciones sobre el entorno desde el que se pueda acceder a los mismos. En Apache, si tu red local fuera 10.1.2.*, podrías restringir la puesta a disposición de los archivos a las direcciones locales mediante:
<Location /mediawiki/images> Order deny,allow Allow from 10.1.2.3 Deny from all </Location>
Restringir la visualización
Restringir la visualización de todas las páginas
Añade esta línea a tu archivo LocalSettings.php
:
# Desactivar la lectura para usuarios anónimos
$wgGroupPermissions['*']['read'] = false;
# Pero permitirles leer, p. ej., estas páginas:
$wgWhitelistRead = [ "Main Page", "Help:Contents" ];
La configuración $wgWhitelistRead
permite a los usuarios ver la página principal.
Si los nombres de las páginas tienen más de una palabra, sepáralas con espacios « » y no con guiones bajos «_».
Además de la página principal de un sitio privado así, puedes dar acceso a la página de cambios recientes (si consideras que su contenido no es privado) a los agregadores añadiendo Special:Recentchanges a $wgWhitelistRead
.
Si por alguna razón necesitas proteger incluso la barra lateral, la página principal o la página de inicio de sesión, se recomienda que utilices algún método de autentificación de alto nivel como .htpasswd o algún equivalente.
Restringir la visualización de determinadas páginas específicas
![]() | 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 may contain security flaws, 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 . |
Para impedir que cualquier usuario menos los operadores de sistema puedan ver una página, se puede eliminar sin más. Para impedir que incluso los operadores de sistema la vean, se puede eliminar de forma más permanente mediante Manual:RevisionDelete . Para destruir completamente el texto de una página, se puede eliminar a mano de la base de datos. En cualquier caso, la página no se puede editar mientras permanezca en este estado, y para casi cualquier propósito ya no existe.
Para hacer que una página se muestre de forma normal para algunos usuarios pero sea invisible para otros, como ocurre por ejemplo en la mayoría de programas de foros, se trata de un asunto muy diferente. MediaWiki está diseñado para dos modos de acceso básicos:
- Cualquier usuario puede ver cualquier página del wiki (con la posible excepción de algunas páginas especiales). Este es el modo utilizado por Wikipedia y sus proyectos hermanos.
- Los usuarios anónimos solo pueden ver la Portada y la página de inicio de sesión, y no pueden editar ninguna página. Esto es esencialmente lo mismo que el caso anterior en términos de implementación técnica (solo hay una comprobación adicional para cada visualización de página), y es la razón por la que existe. Este es el modo de operación utilizado por determinados wikis privados como los utilizados por distintos comités de Wikimedia.
Si tu intención es establecer distintos permisos de visualización de los ya descritos, MediaWiki no está diseñado para tu uso.
(Véase T3924 Declined.)
Los datos no están necesariamente delineados con claridad en función del espacio de nombres, del nombre de la página o de otros criterios, y hay muchos ajustes que hacer si quieres hacer que lo estén (véase un ejemplo en security issues with authorization extensions ).
Otros softwares wiki pueden ajustarse mejor a tu propósito.
Estás advertido.
Si tienes que utilizar MediaWiki, hay tres posibilidades básicas:
- Monta tu wiki en modo privado e incluye páginas específicas con
$wgWhitelistRead
en el archivo LocalSetting.php para que sean públicas. Véase la sección más atrás. - Monta wikis separados con una base de datos de usuarios compartida , configura una como visible y otra como no visible (véase más arriba) y crea enlaces interwiki entre ellos.
- Instala un apaño de terceros o una extensión. Tendrás que volver a aplicar esto cada vez que actualices el software, y puede que no se actualice de inmediato cada vez que se lancen nuevos parches de seguridad o nuevas actualizaciones de MediaWiki. Los apaños de terceros, por supuesto, no cuentan con el soporte de los desarrolladores de MediaWiki, y si tienes problemas, no deberías pedir ayuda en MediaWiki-l, #mediawiki u otros canales de soporte oficiales. En Category:Page specific user rights extensions está listada una serie de apaños. Lee sobre security issues with authorization extensions si tienes pensado utilizar alguno.
Restringir la exportación
Véase también: Manual:Parámetros para Special:Export
No es posible exportar el contenido de una página que no se pueda leer desde r19935.
Eliminar el enlace de inicio de sesión de todas las páginas
Se puede eliminar el enlace de iniciar sesión o crear cuenta de la esquina superior derecha de todas las páginas, ya que los usuarios pueden seguir accediendo a Special:SpecialPages
→ Special:UserLogin
para iniciar sesión.
En LocalSettings.php
utiliza lo siguiente (verificado con 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'] );
};
Eliminar cuentas
Si deseas eliminar completamente el acceso a un usuario, p. ej., en un wiki privado sencillo, no es posible eliminar sin más la cuenta (salvo que no haya realizado ninguna edición ); puedes bloquearla , pero el usuario puede seguir leyendo páginas (a menos que $wgBlockDisablesLogin
esté activado).
Sin embargo, con la extensión User Merge and Delete , puedes fusionar la cuenta con otra y eliminar la cuenta original, que «desaparecerá».
Si quieres conservar la legibilidad del historial (es decir, que las ediciones de un usuario se le sigan asignando a su nombre), puedes crear una nueva cuenta, p. ej., de nombre «NombreDeUsuarioOriginal (desactivado)» y luego fusionar «NombreDeUsuarioOriginal» con el anterior, o incluso utilizar la extensión Renameuser para renombrar «NombreDeUsuarioOriginal» a «OtroNombreDeUsuario», luego crear una cuenta bajo «NombreDeUsuarioOriginal» y fusionar «OtroNombreDeUsuario» con ella; en este caso, «NombreDeUsuarioOriginal» será completamente «usurpado» (si estableciste una contraseña no nula).
Otras restricciones
Puede que desees hacer que las páginas solo sean editables por su creador, o impedir la visualización del historial, entre otras cosas. Ninguna de estas funcionalidades está disponible en una versión original de MediaWiki. Si necesitas un control más fino de permisos, consulta la sección # Véase también para ver enlaces a otros paquetes wiki diseñados para esto, así como apaños que tratan de convertir MediaWiki en algo para lo que no estaba diseñado pero que podría funcionar de todas formas.
Véase también
Hay algunas páginas relacionadas de manual/ayuda que pueden ser de interés:
- Manual:LocalSettings.php
- Manual:$wgGroupPermissions
- Manual:$wgRestrictionTypes
- Manual:$wgRestrictionLevels
- Manual:$wgNamespaceProtection
- Manual:$wgEmailConfirmToEdit
- Manual:$wgNonincludableNamespaces
- Manual:Derechos de usuarios
- Ayuda:Permisos y grupos de usuario
Otros softwares wiki pueden ofrecer un mejor soporte para un control de acceso más fino que MediaWiki:
- MoinMoin
- TWiki
- TikiWiki - ofrece un control de acceso completamente configurable de sus funcionalidades y niveles de permisos.
Si quieres un mejor control de acceso pero quieres seguir utilizando MediaWiki, he aquí una lista de extensiones y apaños que permiten establecer restricciones que no son posibles en el propio software. Estos apaños pueden estar desactualizados (comprueba la versión para la que están programados). Por favor, no pidas ayuda en canales oficiales de soporte de MediaWiki si algo falla con un apaño de terceros.
- Extension:Flagged Revisions
- Extensión:Moderación
- Extensión:Approved Revs
- Extension:Lockdown
- Extension:AuthorProtect
- Extension:EditSubpages - impide a los usuarios anónimos la edición de la mayoría de las páginas
- Extension:NSFileRepo