重置用户的密码
您可以使用 Rake 任务、Rails 控制台或 Users API 重置用户密码。
先决条件
要重置用户密码,您必须是私有化部署实例的管理员。
用户的新密码必须满足所有密码要求。
使用 UI
要在 UI 中重置用户密码:
- 在顶部栏中,选择 主菜单 > 管理员。
- 在左侧边栏中,选择 概览 > 用户。
- 对于您要更新其密码的用户,选择 编辑 ()。
- 在 密码 区域,输入密码,并再次确认密码。
- 选择 保存更改。
系统显示确认信息。
使用 Rake 任务
引入 13.9 版本。
使用以下 Rake 任务重置用户的密码:
-
Omnibus 安装实例
sudo gitlab-rake "gitlab:password:reset"
-
源安装实例
bundle exec rake "gitlab:password:reset"
极狐GitLab 请求用户名、密码和密码确认。完成后,将更新用户的密码。
Rake 任务可以将用户名作为参数。例如,要为用户名为 sidneyjones
的用户重置密码:
-
Omnibus 安装实例
sudo gitlab-rake "gitlab:password:reset[sidneyjones]"
-
源安装实例
bundle exec rake "gitlab:password:reset[sidneyjones]"
使用 Rails 控制台
如果您知道用户名、用户 ID 或电子邮件地址,您可以使用 Rails 控制台重置他们的密码:
- 打开 Rails 控制台。
-
找到用户:
-
通过用户名:
user = User.find_by_username 'exampleuser'
-
通过用户 ID:
user = User.find(123)
-
通过电子邮件地址:
user = User.find_by(email: 'user@example.com')
-
-
通过设置
user.password
和user.password_confirmation
的值来重置密码。例如,要设置一个新的随机密码:new_password = ::User.random_password user.password = new_password user.password_confirmation = new_password
要为新密码设置特定值:
new_password = 'examplepassword' user.password = new_password user.password_confirmation = new_password
-
可选。通知用户,管理员已更改他们的密码:
user.send_only_admin_changed_your_password_notification!
-
保存更改:
user.save!
-
退出控制台:
exit
重置 root 密码
要重置 root 密码,请按照前面列出的步骤操作。
- 如果 root 帐户名称未更改,请使用用户名
root
。 - 如果 root 帐户名称已更改,而您不知道新用户名,则可以使用带有用户 ID
1
的 Rails 控制台。在几乎所有情况下,第一个用户是默认管理员帐户。
故障排查
如果新密码不起作用,则可能是电子邮件确认问题。您可以尝试在 Rails 控制台中修复此问题。例如,如果新的 root
密码不起作用:
- 打开 Rails 控制台。
-
找到用户并跳过重新确认:
user = User.find(1) user.skip_reconfirmation!
- 尝试重新登录。