gitlab重置root用户密码
前提
- 需要知道gitlab账号的用户名,id,或者邮箱其一
- 需要gitlab实例机器的管理员权限账号
- 新密码必须符合gitlab密码规则
操作
- 打开Rails Console
1
sudo gitlab-rails console
- 找到gitlab用户
- 通过用户名
1
user = User.find_by_username 'exampleuser'
- 通过id
1
user = User.find(123)
- 通过邮箱
1
user = User.find_by(email: 'user@example.com')
- 通过用户名
- 重置密码
重置为随机密码:重置为自定义密码:1
2
3new_password = ::User.random_password
user.password = new_password
user.password_confirmation = new_password1
2
3new_password = 'examplepassword'
user.password = new_password
user.password_confirmation = new_password - 可以是否邮件通知用户
1
user.send_only_admin_changed_your_password_notification!
- 保存用户
1
user.save!
- 退出控制台
1
exit
重置root账号密码
如果要重置root账号的密码
- 如果root用户名没改过,直接通过root查找
- 如果用户名修改了,并且不知道新的用户名,通过id为1查找,一般root账号id就是1
问题
- 修改不生效
可能是因为打开了邮箱验证,可以通过rail console关闭。1
2user = User.find(1)
user.skip_reconfirmation! - 没有root账号
遇到过部署的gitlab没有root账号的情况,通过手动将其他用户设为root账号解决- 查看用户属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14u = User.find(1)
pp u.attributes
irb(main):003:0> pp u.attributes
{"id"=>1,
"email"=>"admin@example.com",
"admin"=>false, ##这个属性表示是否为管理员
...
"group_view"=>nil,
"managing_group_id"=>nil,
"user_type"=>"human",
"static_object_token_encrypted"=>nil,
"otp_secret_expires_at"=>nil,
"otp_secret"=>nil} - 设置为管理员 也可以通过这种方式修改用户的其他属性
1
2
3u.admin = true
u.save!
exit
- 查看用户属性