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 来重置用户密码。
前提条件
- 您必须是实例的管理员。
- 密码必须满足所有 密码要求。
使用界面
要在界面中重置用户密码:
- 在左侧边栏底部,选择 管理员。
- 选择 概览 > 用户。
- 找到要更新的用户账户,选择 编辑。
- 在 密码 部分,输入并确认新密码。
- 选择 保存更改。
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 或电子邮件地址。
-
启动一个 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! -
尝试再次登录。
未满足的密码要求
密码可能太短、太弱或不满足复杂性要求。确保您尝试设置的密码满足所有 密码要求。
密码已过期
如果用户密码之前已过期,您可能需要更新密码过期日期。更多信息请参见 使用 SSH 进行 Git fetch 时 LDAP 用户的密码过期错误。