gitlab重置用户账号密码,包括root账号
前提
- 需要知道gitlab账号的用户名,id,或者邮箱其一
- 需要gitlab实例机器的管理员权限账号
- 新密码必须符合gitlab密码规则
操作
- 打开Rails Console
sudo gitlab-rails console
- 找到gitlab用户
- 通过用户名
user = User.find_by_username 'exampleuser'
- 通过id
user = User.find(123)
- 通过邮箱
user = User.find_by(email: 'user@example.com')
- 重置密码
重置为随机密码:
重置为自定义密码: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
- 可以是否邮件通知用户
user.send_only_admin_changed_your_password_notification!
- 保存用户
user.save!
- 退出控制台
exit
重置root账号密码
如果要重置root账号的密码
- 如果root用户名没改过,直接通过root查找
- 如果用户名修改了,并且不知道新的用户名,通过id为1查找,一般root账号id就是1
问题
- 修改不生效
可能是因为打开了邮箱验证,可以通过rail console关闭。user = User.find(1) user.skip_reconfirmation!
- 没有root账号
遇到过部署的gitlab没有root账号的情况,通过手动将其他用户设为root账号解决- 查看用户属性
u = 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}
- 设置为管理员
也可以通过这种方式修改用户的其他属性u.admin = true u.save! exit