重置用户的密码
您可以使用 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 控制台
要从 Rails 控制台重置用户名密码:
先决条件:
- 您必须知道相关的用户名、用户 ID 或邮件地址。
- 打开 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!
- 尝试重新登录。
未满足密码要求
密码可能太短、太弱或不符合复杂性要求。请确保您尝试设置的密码满足所有密码要求。
过期的密码
如果用户密码之前已经过期,您可能需要更新密码过期日期。有关更多信息,请参阅使用 SSH 对 LDAP 用户进行 Git 获取时的密码过期错误。