{{< details >}}

  • Tier: 基础版,专业版,旗舰版
  • Offering: 私有化部署

{{< /details >}}

您可以通过使用 UI、Rake 任务、Rails 控制台或 用户 API 来重置用户密码。

前提条件

  • 您必须是极狐GitLab私有化部署的管理员。
  • 新密码必须符合所有密码要求

使用 UI

要在 UI 中重置用户密码:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 概览 > 用户
  3. 找到要更新的用户帐户,选择 编辑
  4. 密码 部分,输入并确认新密码。
  5. 选择 保存更改

显示确认信息。

使用 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 或电子邮件地址。
  1. 打开 Rails 控制台
  2. 找到用户:

    • 按用户名:

      user = User.find_by_username 'exampleuser'
      
    • 按用户 ID:

      user = User.find(123)
      
    • 按电子邮件地址:

      user = User.find_by(email: 'user@example.com')
      
  3. 通过为 user.passworduser.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
    
  4. 可选。通知用户管理员更改了他们的密码:

    user.send_only_admin_changed_your_password_notification!
    
  5. 保存更改:

    user.save!
    
  6. 退出控制台:

    exit
    

重置 root 密码

您可以通过之前概述的 Rake 任务Rails 控制台 过程来重置 root 密码。

  • 如果 root 帐户名称没有更改,请使用用户名 root
  • 如果 root 帐户名称已更改且您不知道新用户名,您可能可以使用用户 ID 1 的 Rails 控制台。在几乎所有情况下,第一个用户是默认管理员帐户。

故障排除

使用以下信息来解决重置用户密码时的问题。

电子邮件确认问题

如果新密码不起作用,可能是电子邮件确认问题。您可以尝试在 Rails 控制台中解决此问题。例如,如果新的 root 密码不起作用:

  1. 启动 Rails 控制台
  2. 找到用户并跳过重新确认:

    user = User.find(1)
    user.skip_reconfirmation!
    
  3. 尝试再次登录。

未满足的密码要求

密码可能太短、太弱或不符合复杂性要求。确保您尝试设置的密码符合所有密码要求

密码过期

如果用户密码之前已过期,您可能需要更新密码过期日期。有关更多信息,请参阅 Git fetch with SSH for LDAP 用户上的密码过期错误