To reset the password of a user, first log into your server with root privileges.
There are a few ways to reset the password of a user.
Start a Ruby on Rails console with this command:
## Rake Task
GitLab provides a Rake Task to reset passwords of users using their usernames,
which can be invoked by the following command:
```shell
gitlab-rails console -e production
sudo gitlab-rake "gitlab:password:reset"
```
Wait until the console has loaded.
## Find the user
You will be asked for username, password, and password confirmation. Upon giving
proper values for them, the password of the specified user will be updated.
There are multiple ways to find your user. You can search by email or user ID number.
The Rake task also takes the username as an argument, as shown in the example
below:
```shell
user = User.where(id: 7).first
sudo gitlab-rake "gitlab:password:reset[johndoe]"
```
or
NOTE:
To reset the default admin password, run this Rake task with the username
`root`, which is the default username of that admin account.
```shell
user = User.find_by(email: 'user@example.com')
```
## Rails console
## Reset the password
The Rake task is capable of finding users via their usernames. However, if only
user ID or email ID of the user is known, Rails console can be used to find user
using user ID and then change password of the user manually.
Now you can change your password:
1. Start a Rails console
```shell
user.password ='secret_pass'
user.password_confirmation ='secret_pass'
```
```shell
sudo gitlab-rails console -e production
```
It's important that you change both password and password_confirmation to make it work.
1. Find the user either by user ID or email ID:
When using this method instead of the [Users API](../api/users.md#user-modification), GitLab sends an email to the user stating that the user changed their password.
```ruby
user = User.find(123)
If the password was changed by an administrator, execute the following command to notify the user by email:
expect{run_rake_task('gitlab:password:reset')}.toraise_error(%r{Unable to change password of the user with username foobar.\nPassword confirmation doesn't match Password})
end
end
context'when user cannot be found'do
beforedo
stub_username('nonexistentuser')
end
it'aborts with an error'do
expect{run_rake_task('gitlab:password:reset')}.toraise_error(/Unable to find user with username nonexistentuser./)