Manual:Restablecimiento de contraseñas

This page is a translated version of the page Manual:Resetting passwords and the translation is 100% complete.

Existen varias situaciones en las que un usuario puede necesitar restablecer su contraseña. Lo más habitual es que la gente olvide su contraseña, o quizá surja algún tipo de violación de la seguridad que pueda haber dado a conocer su contraseña. En la mayoría de las situaciones, podrán restablecer ellos mismos su contraseña usando la función de envío de nueva contraseña de Especial:Entrar.

En situaciones más complicadas, como cuando el usuario ha olvidado el nombre de su cuenta o no puede acceder a su cuenta de correo electrónico, pueden ser necesarias medidas adicionales por parte de un administrador.

Métodos

Usar Especial:Entrar

Si conoces el nombre de usuario de una cuenta, puedes usar el enlace ¿Has olvidado tu contraseña? de la página Especial:Entrar. Para usar esta función, visita la página Especial:Entrar del wiki en cuestión, sigue el enlace ¿Has olvidado tu contraseña?, introduce el nombre de usuario en el formulario y pulsa el botón ”Restablecer la contraseña". De este modo se enviará a la dirección de correo electrónico asociada con ese nombre de usuario una contraseña temporal, junto con instrucciones sobre cómo restablecer la contraseña. Esto sucederá incluso si no se ha confirmado la dirección de correo electrónico.

Averiguar el nombre de usuario a partir de una dirección de correo

Si conoces la dirección de correo electrónico de un usuario, pero no su nombre de usuario, puedes consultar la tabla user de la base de datos de MediaWiki para descubrir el nombre de usuario al que está asociada. Por ejemplo, para averiguar el nombre de usuario de user@example.com, ejecuta esta orden:

SELECT user_name FROM user WHERE user_email = 'user@example.com';

Usar el script de mantenimiento changePassword.php

El script de mantenimiento changePassword.php permite a los administradores del sistema modificar la contraseña de una cuenta. Para ver instrucciones detalladas, mira changePassword.php . Si ya tienes experiencia con los scripts de mantenimiento, ejecuta el siguiente comando del subdirectorio maintenance:

# set the password for username 'example' to 'newpassword'
php run.php changePassword.php --user=example --password=newpassword

Cuidado: Los administradores del sistema no deberían conocer la contraseña encriptada que corresponde a una cuenta de usuario. Puede darse el caso de que un usuario utilice la misma contraseña en muchos sitios diferentes. Si una de las cuentas donde utiliza la misma contraseña es manipulada por otra persona, podrían recaer sospechas sobre el administrador. Es mejor usar el primer método sugerido para "Especial:Entrar" para obligar al usuario a restablecer personalmente su contraseña sin que intervenga nadie más.


Usar Especial:RestablecerContraseña

Especial:RestablecerContraseña permite que las cuentas que cuenten con el permiso 'passwordreset' restablezcan contraseñas de cuentas para la instalación local de MediaWiki.

Para usarla:

  • Introduce en el formulario el nombre del usuario cuya contraseña quieres establecer y pulsa "Restablecer la contraseña"
  • Se enviará al usuario por correo electrónico una contraseña generada automáticamente

Para insertar automáticamente el nombre de usuario en enlaces, utiliza Special:PasswordReset?wpUsername=Foo.

Diferencias entre Special:PasswordReset y Special:ChangePassword

MediaWiki differentiates between "resetting" and "changing" a password. In password reset request (via Special:PasswordReset or from the login page), you will be asked to provide either an email and/or username (this is configurable) and then an email is automatically sent to you with a generated password. No login is required to access this page, but might be restricted with internal permission checks.

In password change request (via Special:ChangePassword), you'll be able to directly change the password on the spot (give the old one, and choose new one), but login is required to access the page. So if you cannot access Special:ChangePassword, use Special:PasswordReset to first get a temporary password to log in. But if you can access the former page, use it directly to change the password, this eliminates the need for the email stage. Special:PasswordReset can be disabled with Manual:$wgPasswordResetRoutes setting, if that's the case, and you cannot access Special:ChangePassword, then you need to ask your system administrator for help.


Utilice la API de resetpassword

La API de resetpassword proporciona la misma funcionalidad que Special:PasswordReset.

Modificación directa de la base de datos

Para restablecer una contraseña, puedes cambiar el valor del campo user_password en la tabla user. Sin embargo, por lo general resulta más rápido y seguro usar la página "Especial:Entrar" o usar el script changePassword.php. Solo debe usar la modificación directa de la base de datos como último recurso, ya que es muy fácil estropear accidentalmente su wiki. Siempre haga una copia de seguridad de su base de datos antes de realizar cualquier modificación manual. Lo siguiente solo funciona cuando se usa el proveedor de autenticación predeterminado de MediaWiki. Si está utilizando una extensión que modifica el proceso de autenticación (como LDAPAuth), es posible que lo siguiente no funcione.

El formato que ve en la tabla de usuarios dependerá de $wgPasswordDefault en LocalSettings.php . Sin embargo, si utiliza un formato diferente, se cambiará automáticamente al formato correcto la próxima vez que el usuario inicie sesión. Por lo tanto, para esta guía, mostramos cómo configurar manualmente el formato "B". Este formato es muy fácil de configurar desde una consulta SQL. No es el formato predeterminado, ya que es más débil que pbkdf2, sin embargo, está bien, ya que el campo user_password se actualizará al formato correcto la próxima vez que el usuario inicie sesión.

MySQL salted (1234 es la salt. Puede reemplazarlo con cualquier número siempre que ambos lugares en los que se usa el número sean los mismos)
UPDATE `user` SET user_password = CONCAT(':B:1234:', MD5(CONCAT('1234-', MD5('somepass')))) WHERE user_name = 'someuser';
PostgreSQL salted
update mwuser SET user_password = text(':B:1234:') || MD5(text('1234-') || MD5('somepass')) WHERE user_name = 'someuser';

Notas

También podría ayudar reiniciar Apache y borrar la memoria caché de tu navegador.

Puedes copiar la contraseña conocida desde una cuenta a otra:

SELECT user_id, user_name, user_password FROM user;
+---------+-----------+----------------------------------------------+
| user_id | user_name | user_password                                |
+---------+-----------+----------------------------------------------+
|       1 | User1     | :B:1d8f41af:1ba8866d9c43d30b7bc037db03a067de |
|       2 | User2     | :B:ee53710f:4291b056175513a5602d48eaeb79705c |
+---------+-----------+----------------------------------------------+

UPDATE user SET user_password = ':B:ee53710f:4291b056175513a5602d48eaeb79705c' WHERE user_id = 1;