1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
---
stage: Manage
group: Authentication and Authorization
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
type: howto
---
# Reset a user's password **(FREE SELF)**
You can reset user passwords by using a Rake task, a Rails console, or the
[Users API](../api/users.md#user-modification).
## Prerequisites
To reset a user password, you must be an administrator of a self-managed GitLab instance.
## Use a Rake task
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52347) in GitLab 13.9.
Use the following Rake task to reset a user's password:
- **For Omnibus installations**
```shell
sudo gitlab-rake "gitlab:password:reset"
```
- **For installations from source**
```shell
bundle exec rake "gitlab:password:reset"
```
GitLab requests a username, a password, and confirmation of the password. When complete, the user's password is updated.
The Rake task can take a username as an argument. For example, to reset the password for the user with username
`sidneyjones`:
- **For Omnibus installations**
```shell
sudo gitlab-rake "gitlab:password:reset[sidneyjones]"
```
- **For installations from source**
```shell
bundle exec rake "gitlab:password:reset[sidneyjones]"
```
## Use a Rails console
If you know the username, user ID, or email address, you can use the Rails console to reset their password:
1. Open a [Rails console](../administration/operations/rails_console.md).
1. Find the user:
- By username:
```ruby
user = User.find_by_username 'exampleuser'
```
- By user ID:
```ruby
user = User.find(123)
```
- By email address:
```ruby
user = User.find_by(email: 'user@example.com')
```
1. Reset the password:
```ruby
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
```
1. Optional. Notify the user that an administrator changed their password:
```ruby
user.send_only_admin_changed_your_password_notification!
```
1. Save the changes:
```ruby
user.save!
```
1. Exit the console:
```ruby
exit
```
## Reset the root password
To reset the root password, follow the steps listed previously.
- 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,
you might be able to use a Rails console with user ID `1`. In almost all
cases, the first user is the default administrator account.
## Troubleshooting
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:
1. Start a [Rails console](../administration/operations/rails_console.md).
1. Find the user and skip reconfirmation:
```ruby
user = User.find(1)
user.skip_reconfirmation!
```
1. Attempt to sign in again.
|