Actions

Difference between revisions of "How do you recover or reset your admin password?"

From Joomla! Documentation

(Remove 1.6 and 1.7 tags and add 3.1)
(32 intermediate revisions by 16 users not shown)
Line 1: Line 1:
If you know the email address that was used for the admin user, and you have made the "lost password" feature available on the front end, the simplest thing is to do is to use the "lost password" Front-end function.
+
{{version|1.5,2.5,3.1}}
 +
Normally, you can add, edit and delete users and passwords from the back-end User Manager. To do this, you must be logged in as a member of the Super Administrator group.  
  
If not, you will need access to the MySQL database. You have two choices, either add a new super administrator or change the password stored in the data base. To do this you need to go to phpMyAdmin (or use a similar tool) and manually edit the database. Before doing this ''back up your complete database''.
+
In some situations, this may not be possible. For example, your site may have been "hacked" and had the passwords or users changed. Or perhaps the person who knew the passwords is no longer available. Or maybe you have forgotten the password that was used.
  
From phpMyAdmin, you can run this SQL query to create a new user known as <var>admin2</var>.
+
In these cases, it is still possible to fix up the Joomla! database so you can log back in as a Super Administrator. There are possible methods discussed below.
  
<source lang="sql">
+
 
INSERT INTO `jos_users` VALUES
+
== Joomla! {{JVer/multi|2.5,3.1}} ==
    (62, 'Administrator2', 'admin2', 'your-email@email.com', '433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT',
+
If you have access to your configuration.php file for the Joomla installation on your server, can recover the password using the following method.
    'Super Administrator', 0, 1, 25, '2005-09-28 00:00:00', '2005-09-28 00:00:00', '', '');
+
 
INSERT INTO `jos_core_acl_aro` VALUES (10,'users','62',0,'Administrator2',0);
+
1.) Using an FTP program connect to your site. Find the configuration.php file and look at the file permissions. If the permissions are 444 or some other value, then change the permissions of the configuration.php file to 644. This will help prevent issues when uploading the changed configuration.php file later in this process.
INSERT INTO `jos_core_acl_groups_aro_map` VALUES (25,'',10);
+
 
 +
2.) Download the configuration file.
 +
 
 +
3.) Open the configuration.php file that was downloaded in a text editor such as notepad++ and add this line
 +
 +
public $root_user='myname';
 +
 
 +
to the bottom of the list where myname is a username with administrator access that you know the password for. An username that is Author level or higher can also be used in place of a username with administrator access.
 +
 
 +
4.) Save the configuration.php file and upload it back to the site. You may leave the permissions on the configuration.php file at 644.
 +
 
 +
This user will now be a temporary super administrator.
 +
 
 +
5.) Login to the back end and change the password of the administrator user you don't have the password for or create a new super admin user.
 +
If you create the new user you may want to block or delete the old user depending on your circumstances.
 +
 
 +
6.) When finished, make sure to use the "Click here to try to do it automatically" link that appears in the alert box to remove the line that was added to the configuration.php file. If using the link was not successful, then go back and delete the added line from your configuration.php file using a text editor. Upload the configuration.php file back to the site.
 +
 
 +
7.) Using your FTP program verify the file permissions of the configuration.php file, they should be 444. If you manually removed the added line, then change the file permissions on the configuration.php file to 444.
 +
 
 +
If you have no users who know their passwords and you can't utilize front end registration you may need to make a change in your database as outlined below in this document.
 +
 
 +
== Use the Lost Password Feature {{JVer|1.5}} ==
 +
 
 +
If you have access to the email address that was used for the admin user, and you have made the "lost password" feature available on the front end, the simplest thing is to do is to use the "lost password" Front-end function. The site will send an e-mail to the user's e-mail address and allow you to change the password. Note: This method will not work in 1.6 or later.
 +
 
 +
== Direct Editing of Database {{JVer/multi|1.5,2.5,3.1}} ==
 +
If the methods above will not work, you have two other options, both of which require working with the MySQL database directly.
 +
 
 +
===Change the Password in the Database===
 +
If the admin user is still defined, the simplest option is to change the password in the database to a known value. This requires that you have access to the MySQL database using phpMyAdmin or another client.
 +
 
 +
# Navigate to phpMyAdmin and select the database for the Joomla! site in the left-hand drop-down list box. This will show the database tables on the left side of the screen.
 +
# Click on the table "jos_users" in the list of tables (note: you may have a prefix that is not jos_, simply go to the _users table for your prefix).
 +
# Click on the "Browse" button in the top toolbar. This will show all of the users that are set up for this site.
 +
# Find the user whose password you want to change and press the Edit icon for this row.
 +
# A form will display that allows you to edit the password field. Copy the value <source lang="sql">d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199</source> into the password field and press the ''Go'' button. phpMyAdmin should display the message "Affected rows: 1". At this point, the password should be changed to "secret".
 +
# Log in with this user and password and change the password of this user to a secure value. Check all of the users using the User Manager to make sure they are legitimate. If you have been hacked, you may want to change all of the passwords on the site.
 +
 
 +
===Add a New Super Administrator User===
 +
If changing the password won't work, or you aren't sure which user is a member of the Super Administrator group, you can use this method to create a new user.
 +
 
 +
# Navigate to phpMyAdmin and select the database for the Joomla! site in the left-hand drop-down list box. This will show the database tables on the left side of the screen.
 +
# Press the "SQL" button in the toolbar to run an SQL query on the selected database. This will display a field called "Run SQL query/queries on database <your database>".
 +
# Delete any text in this field and copy and paste one of the following queries and press the ''Go'' button to execute the query and add the new Administrator user to the table.
 +
# Use the 1.6 query version for a site based upon Joomla 1.6.xx and use the 1.5 query version for a site based upon Joomla 1.5.xx.
 +
 
 +
 
 +
'''NOTE:''' '''''The following code uses jos_ as the table name prefix which is the Joomla default table prefix If you elected to change this prefix when you first installed Joomla, you will need to change jos_ to the prefix you used.'''''
 +
 
 +
 
 +
'''SQL code for use with Joomla 2.5.x {{JVer|2.5}} 3.1.x {{JVer|3.1}} '''
 +
 
 +
<source lang="sql">INSERT INTO `jos_users`
 +
  (`name`, `username`, `password`, `params`)
 +
VALUES ('Administrator2', 'admin2',
 +
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '');
 +
INSERT INTO `jos_user_usergroup_map` (`user_id`,`group_id`)
 +
VALUES (LAST_INSERT_ID(),'8');
 
</source>
 
</source>
  
The password will be <var>admin</var>. Immediately log in and change this password and make any other changes to other admin users.
 
  
A second option is to change the password in the table for your admin user. The password is stored in the MySQL database jos_users table password column. (Change this for your table prefix if different.)
+
'''SQL code for use with Joomla 1.5.xx {{JVer|1.5}}'''
  
Open the table, find the row for your admin user, and then select that row for editing. The password must be hashed, you cannot simply enter text into this field.
+
<source lang="sql">INSERT INTO `jos_users`
 +
  (`name`, `username`, `password`, `usertype`, `gid`, `params`)
 +
VALUES ('Administrator2', 'admin2',
 +
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199',
 +
    'Super Administrator', 25, '');
 +
INSERT INTO `jos_core_acl_aro`
 +
VALUES (NULL, 'users', LAST_INSERT_ID(), 0, 'Administrator2', 0);
 +
INSERT INTO `jos_core_acl_groups_aro_map`
 +
VALUES (25, '', LAST_INSERT_ID());
 +
</source>
  
Set the password to one of the known values shown below:
+
At this point, you should be able to log into the back end of Joomla! with the username of "admin2" and password of "secret". After logging in, go to the User Manager and change the password to a new secure value and add a valid e-mail address to the account. If there is a chance you have been "hacked", be sure to check that all users are legitimate, especially any members of the Super Administrator group.
  
 +
{{warning|Warning: The password values shown on this page are public knowledge and are only for recovery. Your site may be hacked if you do not change the password to a secure value after logging in. Be sure you change the password to a secure value after logging in.}}
 +
 +
The examples above change the password to "secret". Two other possible values are shown below:
 
<pre>
 
<pre>
- password = "this is the MD5 hashed password"
+
- password = "this is the MD5 and salted hashed password"
 
------------------------------------------------------
 
------------------------------------------------------
 
- admin  = 433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT
 
- admin  = 433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT
Line 29: Line 99:
 
</pre>
 
</pre>
  
Or you can use this [https://secure.phil-taylor.com/generate_password.php Secure Online Tool] to create your own salted hashes:
 
 
Paste the hashed password into the field, save the change, and log-in using the new password.
 
Immediately change your password to something more secure!
 
  
[[Category:FAQ]]
+
<noinclude>[[Category:FAQ]][[Category:Administration FAQ]][[Category:Getting Started FAQ]][[Category:Version 1.5 FAQ]][[Category:User Management]]</noinclude>
[[Category:Administration FAQ]]
+
[[Category:Getting Started FAQ]]
+
[[Category:Version 1.5 FAQ]]
+

Revision as of 04:24, 29 April 2013

Normally, you can add, edit and delete users and passwords from the back-end User Manager. To do this, you must be logged in as a member of the Super Administrator group.

In some situations, this may not be possible. For example, your site may have been "hacked" and had the passwords or users changed. Or perhaps the person who knew the passwords is no longer available. Or maybe you have forgotten the password that was used.

In these cases, it is still possible to fix up the Joomla! database so you can log back in as a Super Administrator. There are possible methods discussed below.


Contents

Joomla!  Joomla 2.5 Joomla 3.1

If you have access to your configuration.php file for the Joomla installation on your server, can recover the password using the following method.

1.) Using an FTP program connect to your site. Find the configuration.php file and look at the file permissions. If the permissions are 444 or some other value, then change the permissions of the configuration.php file to 644. This will help prevent issues when uploading the changed configuration.php file later in this process.

2.) Download the configuration file.

3.) Open the configuration.php file that was downloaded in a text editor such as notepad++ and add this line

public $root_user='myname';

to the bottom of the list where myname is a username with administrator access that you know the password for. An username that is Author level or higher can also be used in place of a username with administrator access.

4.) Save the configuration.php file and upload it back to the site. You may leave the permissions on the configuration.php file at 644.

This user will now be a temporary super administrator.

5.) Login to the back end and change the password of the administrator user you don't have the password for or create a new super admin user. If you create the new user you may want to block or delete the old user depending on your circumstances.

6.) When finished, make sure to use the "Click here to try to do it automatically" link that appears in the alert box to remove the line that was added to the configuration.php file. If using the link was not successful, then go back and delete the added line from your configuration.php file using a text editor. Upload the configuration.php file back to the site.

7.) Using your FTP program verify the file permissions of the configuration.php file, they should be 444. If you manually removed the added line, then change the file permissions on the configuration.php file to 444.

If you have no users who know their passwords and you can't utilize front end registration you may need to make a change in your database as outlined below in this document.

Use the Lost Password Feature Joomla 1.5

If you have access to the email address that was used for the admin user, and you have made the "lost password" feature available on the front end, the simplest thing is to do is to use the "lost password" Front-end function. The site will send an e-mail to the user's e-mail address and allow you to change the password. Note: This method will not work in 1.6 or later.

Direct Editing of Database  Joomla 1.5 Joomla 2.5 Joomla 3.1

If the methods above will not work, you have two other options, both of which require working with the MySQL database directly.

Change the Password in the Database

If the admin user is still defined, the simplest option is to change the password in the database to a known value. This requires that you have access to the MySQL database using phpMyAdmin or another client.

  1. Navigate to phpMyAdmin and select the database for the Joomla! site in the left-hand drop-down list box. This will show the database tables on the left side of the screen.
  2. Click on the table "jos_users" in the list of tables (note: you may have a prefix that is not jos_, simply go to the _users table for your prefix).
  3. Click on the "Browse" button in the top toolbar. This will show all of the users that are set up for this site.
  4. Find the user whose password you want to change and press the Edit icon for this row.
  5. A form will display that allows you to edit the password field. Copy the value
    d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199
    into the password field and press the Go button. phpMyAdmin should display the message "Affected rows: 1". At this point, the password should be changed to "secret".
  6. Log in with this user and password and change the password of this user to a secure value. Check all of the users using the User Manager to make sure they are legitimate. If you have been hacked, you may want to change all of the passwords on the site.

Add a New Super Administrator User

If changing the password won't work, or you aren't sure which user is a member of the Super Administrator group, you can use this method to create a new user.

  1. Navigate to phpMyAdmin and select the database for the Joomla! site in the left-hand drop-down list box. This will show the database tables on the left side of the screen.
  2. Press the "SQL" button in the toolbar to run an SQL query on the selected database. This will display a field called "Run SQL query/queries on database <your database>".
  3. Delete any text in this field and copy and paste one of the following queries and press the Go button to execute the query and add the new Administrator user to the table.
  4. Use the 1.6 query version for a site based upon Joomla 1.6.xx and use the 1.5 query version for a site based upon Joomla 1.5.xx.


NOTE: The following code uses jos_ as the table name prefix which is the Joomla default table prefix If you elected to change this prefix when you first installed Joomla, you will need to change jos_ to the prefix you used.


SQL code for use with Joomla 2.5.x Joomla 2.5 3.1.x Joomla 3.1

INSERT INTO `jos_users`
   (`name`, `username`, `password`, `params`)
VALUES ('Administrator2', 'admin2',
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '');
INSERT INTO `jos_user_usergroup_map` (`user_id`,`group_id`)
VALUES (LAST_INSERT_ID(),'8');


SQL code for use with Joomla 1.5.xx Joomla 1.5

INSERT INTO `jos_users`
   (`name`, `username`, `password`, `usertype`, `gid`, `params`)
VALUES ('Administrator2', 'admin2',
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199',
    'Super Administrator', 25, '');
INSERT INTO `jos_core_acl_aro`
VALUES (NULL, 'users', LAST_INSERT_ID(), 0, 'Administrator2', 0);
INSERT INTO `jos_core_acl_groups_aro_map`
VALUES (25, '', LAST_INSERT_ID());

At this point, you should be able to log into the back end of Joomla! with the username of "admin2" and password of "secret". After logging in, go to the User Manager and change the password to a new secure value and add a valid e-mail address to the account. If there is a chance you have been "hacked", be sure to check that all users are legitimate, especially any members of the Super Administrator group.

Stop hand nuvola.svg.png
Warning!

Warning: The password values shown on this page are public knowledge and are only for recovery. Your site may be hacked if you do not change the password to a secure value after logging in. Be sure you change the password to a secure value after logging in.


The examples above change the password to "secret". Two other possible values are shown below:

- password = "this is the MD5 and salted hashed password"
------------------------------------------------------
- admin  = 433903e0a9d6a712e00251e44d29bf87:UJ0b9J5fufL3FKfCc0TLsYJBh2PFULvT
- secret = d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199
- OU812  = 5e3128b27a2c1f8eb53689f511c4ca9e:J584KAEv9d8VKwRGhb8ve7GdKoG7isMm