Help us learn about your current experience with the documentation. Take the survey.

重置用户密码

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

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

前提条件

  • 您必须是实例的管理员。
  • 密码必须满足所有 密码要求

使用界面

要在界面中重置用户密码:

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

GitLab 会更新用户密码。

使用 Rake 任务

要通过 Rake 任务重置用户密码:

sudo gitlab-rake "gitlab:password:reset"
bundle exec rake "gitlab:password:reset"

GitLab 会要求输入用户名、密码和密码确认。完成后,用户密码将被更新。

Rake 任务可以接受用户名作为参数。例如,要重置用户名为 sidneyjones 的用户密码:

sudo gitlab-rake "gitlab:password:reset[sidneyjones]"
bundle exec rake "gitlab:password:reset[sidneyjones]"

使用 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. 尝试再次登录。

未满足的密码要求

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

密码已过期

如果用户密码之前已过期,您可能需要更新密码过期日期。更多信息请参见 使用 SSH 进行 Git fetch 时 LDAP 用户的密码过期错误