{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
您可以通过使用 UI、Rake 任务、Rails 控制台或 用户 API 来重置用户密码。
前提条件
- 您必须是极狐GitLab私有化部署的管理员。
- 新密码必须符合所有密码要求。
使用 UI
要在 UI 中重置用户密码:
- 在左侧边栏底部,选择 管理员。
- 选择 概览 > 用户。
- 找到要更新的用户帐户,选择 编辑。
- 在 密码 部分,输入并确认新密码。
- 选择 保存更改。
显示确认信息。
使用 Rake 任务
要使用 Rake 任务重置用户密码:
{{< tabs >}}
{{< tab title=”Linux package (Omnibus)” >}}
sudo gitlab-rake "gitlab:password:reset"
{{< /tab >}}
{{< tab title=”Self-compiled (source)” >}}
bundle exec rake "gitlab:password:reset"
{{< /tab >}}
{{< /tabs >}}
极狐GitLab请求用户名、密码和密码确认。完成后,用户密码将被更新。
Rake 任务可以接受用户名作为参数。例如,要重置用户名为 sidneyjones
的用户密码:
{{< tabs >}}
{{< tab title=”Linux package (Omnibus)” >}}
sudo gitlab-rake "gitlab:password:reset[sidneyjones]"
{{< /tab >}}
{{< tab title=”Self-compiled (source)” >}}
bundle exec rake "gitlab:password:reset[sidneyjones]"
{{< /tab >}}
{{< /tabs >}}
使用 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 user.password_automatically_set = false
要为新密码设置特定值:
new_password = 'examplepassword' user.password = new_password user.password_confirmation = new_password user.password_automatically_set = false
-
可选。通知用户管理员更改了他们的密码:
user.send_only_admin_changed_your_password_notification!
-
保存更改:
user.save!
-
退出控制台:
exit
重置 root 密码
您可以通过之前概述的 Rake 任务 或 Rails 控制台 过程来重置 root 密码。
- 如果 root 帐户名称没有更改,请使用用户名
root
。 - 如果 root 帐户名称已更改且您不知道新用户名,您可能可以使用用户 ID
1
的 Rails 控制台。在几乎所有情况下,第一个用户是默认管理员帐户。
故障排除
使用以下信息来解决重置用户密码时的问题。
电子邮件确认问题
如果新密码不起作用,可能是电子邮件确认问题。您可以尝试在 Rails 控制台中解决此问题。例如,如果新的 root
密码不起作用:
- 启动 Rails 控制台。
-
找到用户并跳过重新确认:
user = User.find(1) user.skip_reconfirmation!
- 尝试再次登录。
未满足的密码要求
密码可能太短、太弱或不符合复杂性要求。确保您尝试设置的密码符合所有密码要求。
密码过期
如果用户密码之前已过期,您可能需要更新密码过期日期。有关更多信息,请参阅 Git fetch with SSH for LDAP 用户上的密码过期错误。