Podręcznik:Resetowanie haseł
Istnieje wiele sytuacji, w których użytkownik musi mieć zresetowane hasło. Zazwyczaj jest to spowodowane zgubieniem hasła lub problemami z bezpieczeństwem, mogącymi spowodować ujawnienie hasła. W większości przypadków swoje hasło można zresetować, korzystając z opcji "Wyślij mi nowe hasło poprzez e-mail".
W sytuacjach kiedy użytkownik zapomniał nazwy swojego konta lub utracił dostęp do swojego konta e-mail, dodatkowe działania musi podjąć administrator lub administrator systemu.
Metody
Użycie Special:UserLogin
Jeżeli znasz swoją nazwę użytkownika, możesz użyć funkcji "Wyślij mi nowe hasło poprzez e-mail" znajdującej się na stronie logowania (Special:UserLogin). Odwiedź stronę Special:UserLogin na odpowiedniej wiki, wypełnij pole "nazwa użytkownika", a następnie kliknij przycisk 'Wyślij mi nowe hasło poprzez e-mail'. Wygenerowane tymczasowe hasło wraz z instrukcjami na temat jego aktywacji zostaną wysłane na adres e-mail przypisany do konta. This will happen even if the email address has not been confirmed.
Wyszukiwanie nazwy użytkownika poprzez podanie adresu e-mail
Jeżeli znasz adres e-mail użytkownika, ale nie znasz jego nazwy, wykonaj zapytanie SQL do tabeli user
w bazie danych MediaWiki, aby odnaleźć powiązanego z tym adresem użytkownika.
Przykład: aby znaleźć nazwę użytkownika posiadającego adres e-mail user@example.com
, wykonaj poniższe zapytanie:
SELECT user_name FROM user WHERE user_email = 'user@example.com';
Użycie skryptu konserwacyjnego changePassword.php
Skrypt konserwacyjny changePassword.php umożliwia administratorom systemu zmianę hasła wybranego użytkownika.
Po więcej informacji na temat użycia, zobacz: changePassword.php .
Jeżeli jesteś już zaznajomiony ze skryptami konserwacyjnymi, uruchom poniższe polecenie z podkatalogu maintenance
:
# set the password for username 'example' to 'newpassword'
php run.php changePassword.php --user=example --password=newpassword
Uwaga: Administratorzy systemu nie powinni znać niezaszyfrowanego hasła do konta użytkownika. Użytkownik może wykorzystywać to hasło na innych stronach. Jeżeli wystąpią problemy związane z jednym z tych kont, administrator może być o to podejrzany. Lepiej jest użyć opcji "Wyślij mi nowe hasło poprzez e-mail", wymusić na użytkowniku zmianę przez niego hasła lub ustawić tymczasowe hasło, które użytkownik będzie musiał od razu zmienić.
Użycie Specjalna:Wyczyść_hasło
Special:PasswordReset umożliwia użytkownikom z uprawnieniem 'editmyprivateinfo
' zresetowanie hasła konta na lokalnej instalacji MediaWiki.
Aby skorzystać z tej funkcji:
- Wpisz nazwę użytkownika, któremu chcesz wyczyścić hasło w odpowiednim polu i kliknij "Zresetuj hasło"
- Automatycznie wygenerowane hasło zostanie wysłane e-mailem do użytkownika
Aby automatycznie wypełniać pole z nazwą użytkownika poprzez linki, użyj takiego formatu: Special:PasswordReset?wpUsername=Nazwa_użytkownika
.
Note that (confusingly) Special:ResetPassword is an older alias to Special:ChangePassword and not related to password resets.
Differences between Special:PasswordReset and 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.
Use the resetpassword
API
The resetpassword API provides the same functionality as Special:PasswordReset.
Bezpośrednia modyfikacja w bazie danych
Aby zresetować hasło użytkownika, możesz zmienić wartość pola user_password
w tabeli user
w bazie danych.
Jednakże łatwiejszym i bezpieczniejszym sposobem jest użycie "Wyślij mi nowe hasło poprzez e-mail" lub użycie skryptu konserwacyjnego changePassword.php.
You should only use direct DB modification as a last resort, as its very easy to accidentally mess up your wiki.
Always backup your database before doing any manual modification.
The following only works when using MediaWiki's default authentication provider and default password configuration.
If you are using an extension that modifies the authentication process (Like LDAPAuth), the following may not work.
Zależnie od ustawienia $wgPasswordDefault
w LocalSettings.php wybierz jedną z poniższych metod.
However if you use a different format, it will automatically be changed to the correct format the next time the user logs in.
Thus for this guide, we show how to manually set the "B" format.
This format is very easy to set from an SQL query.
It is not the default format as it is weaker than pbkdf2, however that's ok as the user_password field will be upgraded to the correct format the next time the user logs in.
- MySQL salted (1234 is the salt. You can replace it with any number as long as both places the number is used are the same)
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';
Uwagi
Zrestartowanie Apache i wyczyszczenie pamięci przeglądarki powinno pomóc.
Można kopiować znane hasło z jednego konta do innego:
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;