重置用户的密码

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

先决条件

  • 要重置用户密码,您必须是私有化部署实例的管理员。

  • 用户的新密码必须满足所有密码要求

使用 UI

要在 UI 中重置用户密码:

  1. 在左侧边栏中,在底部,选择 管理员
  2. 选择 概览 > 用户
  3. 对于您要更新其密码的用户,选择 编辑
  4. 密码 区域,输入密码,并再次确认密码。
  5. 选择 保存更改

系统显示确认信息。

使用 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 或邮件地址。
  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
    

    要为新密码设置特定值:

    new_password = 'examplepassword'
    user.password = new_password
    user.password_confirmation = new_password
    
  4. 可选。通知用户,管理员已更改他们的密码:

    user.send_only_admin_changed_your_password_notification!
    
  5. 保存更改:

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

    exit
    

重置 root 密码

要重置 root 密码,请按照前面列出的步骤操作。

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

故障排查

邮件通知问题

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

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

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

未满足密码要求

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

过期的密码

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