2019-06-07 10:33:31 -04:00
---
2020-11-18 16:09:32 -05:00
stage: Manage
2022-01-26 22:14:06 -05:00
group: Authentication and Authorization
2022-09-21 17:13:33 -04:00
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2019-06-07 10:33:31 -04:00
type: howto
---
2019-07-16 03:02:20 -04:00
2021-12-13 13:15:18 -05:00
# Reset a user's password **(FREE SELF)**
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
You can reset user passwords by using a Rake task, a Rails console, or the
[Users API ](../api/users.md#user-modification ).
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
## Prerequisites
To reset a user password, you must be an administrator of a self-managed GitLab instance.
2022-10-11 20:10:06 -04:00
The user's new password must meet all [password requirements ](../user/profile/user_passwords.md#password-requirements ).
2021-12-13 13:15:18 -05:00
## Use a Rake task
2021-02-02 01:09:47 -05:00
2021-03-19 05:08:53 -04:00
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52347) in GitLab 13.9.
2021-12-13 13:15:18 -05:00
Use the following Rake task to reset a user's password:
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
- **For Omnibus installations**
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
```shell
sudo gitlab-rake "gitlab:password:reset"
```
2020-09-04 05:08:38 -04:00
2021-12-13 13:15:18 -05:00
- **For installations from source**
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
```shell
bundle exec rake "gitlab:password:reset"
```
2015-05-07 12:48:25 -04:00
2021-12-13 13:15:18 -05:00
GitLab requests a username, a password, and confirmation of the password. When complete, the user's password is updated.
2015-05-07 12:48:25 -04:00
2021-12-13 13:15:18 -05:00
The Rake task can take a username as an argument. For example, to reset the password for the user with username
`sidneyjones` :
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
- **For Omnibus installations**
2020-09-04 05:08:38 -04:00
2021-12-13 13:15:18 -05:00
```shell
sudo gitlab-rake "gitlab:password:reset[sidneyjones]"
```
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
- **For installations from source**
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
```shell
bundle exec rake "gitlab:password:reset[sidneyjones]"
```
2021-03-19 05:08:53 -04:00
2021-12-13 13:15:18 -05:00
## Use a Rails console
2021-03-19 05:08:53 -04:00
2021-12-13 13:15:18 -05:00
If you know the username, user ID, or email address, you can use the Rails console to reset their password:
2020-09-04 05:08:38 -04:00
2021-12-13 13:15:18 -05:00
1. Open a [Rails console ](../administration/operations/rails_console.md ).
1. Find the user:
2020-09-04 05:08:38 -04:00
2021-12-13 13:15:18 -05:00
- By username:
2020-09-04 05:08:38 -04:00
2021-12-13 13:15:18 -05:00
```ruby
user = User.find_by_username 'exampleuser'
```
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
- By user ID:
2021-02-02 01:09:47 -05:00
2021-12-13 13:15:18 -05:00
```ruby
user = User.find(123)
```
2021-02-02 01:09:47 -05:00
2022-01-13 16:14:07 -05:00
- By email address:
2021-12-13 13:15:18 -05:00
```ruby
user = User.find_by(email: 'user@example.com')
```
2022-01-13 16:14:07 -05:00
2022-03-31 23:08:47 -04:00
1. Reset the password by setting a value for `user.password` and `user.password_confirmation` . For example, to set a new random
password:
2021-12-13 13:15:18 -05:00
```ruby
2022-03-31 23:08:47 -04:00
new_password = ::User.random_password
user.password = new_password
user.password_confirmation = new_password
2022-08-08 23:11:51 -04:00
```
To set a specific value for the new password:
```ruby
new_password = 'examplepassword'
user.password = new_password
user.password_confirmation = new_password
```
2015-04-28 18:42:19 -04:00
2021-12-13 13:15:18 -05:00
1. Optional. Notify the user that an administrator changed their password:
```ruby
user.send_only_admin_changed_your_password_notification!
```
2021-02-02 01:09:47 -05:00
1. Save the changes:
```ruby
user.save!
```
2021-12-13 13:15:18 -05:00
1. Exit the console:
```ruby
exit
```
2019-06-07 10:33:31 -04:00
2021-12-13 13:15:18 -05:00
## Reset the root password
2020-09-04 05:08:38 -04:00
2021-12-13 13:15:18 -05:00
To reset the root password, follow the steps listed previously.
2021-03-19 05:08:53 -04:00
2021-12-13 13:15:18 -05:00
- If the root account name hasn't changed, use the username `root` .
- If the root account name has changed and you don't know the new username,
2022-01-13 16:14:07 -05:00
you might be able to use a Rails console with user ID `1` . In almost all
2021-12-13 13:15:18 -05:00
cases, the first user is the default administrator account.
2021-03-19 05:08:53 -04:00
2021-12-13 13:15:18 -05:00
## Troubleshooting
2021-03-19 05:08:53 -04:00
2022-10-11 20:10:06 -04:00
Use the following information to troubleshoot issues when resetting a
user's password.
### Email confirmation issues
2021-12-13 13:15:18 -05:00
If the new password doesn't work, it might be [an email confirmation issue ](../user/upgrade_email_bypass.md ). You can
attempt to fix this issue in a Rails console. For example, if a new `root` password isn't working:
2021-03-19 05:08:53 -04:00
2021-12-13 13:15:18 -05:00
1. Start a [Rails console ](../administration/operations/rails_console.md ).
1. Find the user and skip reconfirmation:
2021-03-19 05:08:53 -04:00
```ruby
user = User.find(1)
user.skip_reconfirmation!
```
2021-12-13 13:15:18 -05:00
1. Attempt to sign in again.
2022-10-11 20:10:06 -04:00
### Unmet password requirements
The password might be too short, too weak, or not meet complexity
requirements. Ensure the password you are attempting to set meets all
[password requirements ](../user/profile/user_passwords.md#password-requirements ).