版本
bash
--------------------------------------------------------------------------------
Ruby: ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x86_64-linux]
GitLab: 17.5.1 (e8dca573167) FOSS
GitLab Shell: 14.39.0
PostgreSQL: 14.11
------------------------------------------------------------[ booted in 20.66s ]
Loading production environment (Rails 7.0.8.4)
使用用户界面
要在 UI 中重置用户密码:
- 在左侧边栏的底部,选择Admin
- 选择概览 > 用户
- 确定要更新的用户帐户,选择"编辑"
- 在"密码"部分中,输入并确认新密码。
- 选择保存更改
使用 Rake 任务
要使用 Rake 任务重置用户密码:
- Linux 软件包(综合)
- 自编译(源码)
bash
sudo gitlab-rake "gitlab:password:reset"
GitLab 请求用户名、密码和密码确认。完成后,用户密码将被更新。
Rake 任务可以接受用户名作为参数。例如,要为 username 的用户重置密码 sidneyjones:
- Linux 软件包(综合)
- 自编译(源码)
bash
sudo gitlab-rake "gitlab:password:reset[sidneyjones]"
使用 Rails 控制台(推荐)
要从 Rails 控制台重置用户密码:
先决条件:
- 您必须知道关联的用户名、用户 ID 或电子邮件地址。
修改root密码
bash
# 通过id查找
user = User.where(id: 1).first
# 通过用户名查找
user = User.where(name: "root").first
1.打开Rails 控制台
bash
gitlab-rails console -e production
2.找到用户:
- 按用户名:
bash
user = User.find_by_username 'exampleuser'
- 按用户 ID:
bash
user = User.find(123)
- 通过电子邮件地址:
bash
user = User.find_by(email: 'user@example.com')
3.user.password
通过设置和 的值来重置密码user.password_confirmation。例如,要设置新的随机密码:
bash
user.password = new_password # 新密码
user.password_confirmation = new_password # 确认新密码
user.password_automatically_set = false # 不使用随机密码,高版本必须加这行
4.选修的。通知用户管理员更改了其密码:
bash
user.send_only_admin_changed_your_password_notification!
5.保存更改:
bash
user.save!
6.退出控制台:
bash
exit
修改成功
故障排除
使用以下信息来解决重置用户密码时出现的问题。
#无法保存
因:密码太简单
果:重新设置复杂密码
电子邮件确认问题
如果新密码不起作用,可能是电子邮件确认问题。您可以尝试在 Rails 控制台中修复此问题。例如,如果新root密码不起作用:
- 启动Rails 控制台
- 找到用户并跳过重新确认:
bash
user = User.find(1)
user.skip_reconfirmation!
- 尝试再次登录。
未满足密码要求
密码可能太短、太弱或不符合复杂性要求。确保您尝试设置的密码符合所有 密码要求。