强制找回gitlab管理员密码
最近使用gitlab的时候发现管理员密码忘记,现将找回密码的操作过程记录下来。
1.在gitlab登录窗口
如果密码忘记了登录不进入,可以先尝试点击登录框下方的Forgot your password来通过邮箱的方式找回,如果邮箱不可以使用了,则看下面的强制找回方法
2.输入邮箱账号找回
输入当初设置的邮箱帐号,这一步前提是邮箱可以正常使用的情况下才可以使用的方法
3.通过xshell连接到gitlab安装的服务器
输入su - git 切换到git用户下操作,切换之后默认的当前目录就可以ls查看到gitlab的命令文件,如图所示可以看到gitlab-rails文件,下一步会使用此文件进入控制台
[root@linux ~]# su - git
Last login: Tue Sep 4 16:33:29 CST 2018 on pts/0
Last failed login: Thu Nov 15 17:05:22 CST 2018 from 192.168.2.239 on ssh:notty
There were 83 failed login attempts since the last successful login.
4.ls查看git目录及内容
-sh-4.2$ ls
alertmanager bootstrapped git-data gitlab-monitor gitlab-shell logrotate node-exporter postgresql public_attributes.js
backups gitaly gitlab-ci gitlab-rails gitlab-workhorse nginx postgres-exporter prometheus redis
5.进入gitlab控制台
输入gitlab-rails console production进入gitlab控制台,只有进入到控制台之后,才可以输入gitlab的查询语句,才会被解析
注意:这里出现Loading production environment (Rails 4.2.10)会比较慢,耐心等一会就可以了
-sh-4.2$ gitlab-rails console production
-------------------------------------------------------------------------------------
GitLab: 11.2.3 (06cbee3)
GitLab Shell: 8.1.1
postgresql: 9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)
6.查询gitlab超级管理员信息
输入user = User.where(id:1).first查询id为1的用户对象,因为超级管理员用户默认都是1,也可以更加username来查询用户对象,管理员账户对象查询到之后,可以从返回的信息中看到admin为true,username为root
irb(main):001:0> user = User.where(id:1).first
=> #<User id:1 @root>
7.重置密码
输入user.password=‘密码’,密码位置填写您新的密码即可。然后再输入user.save!保存用户对象
irb(main):002:0> user.password='123456'
=> "123456"
irb(main):003:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: a87b7fd0-7fa7-4744-b46d-5223d4d3f8b5) to Sidekiq(mailers) with arguments: "DeviseMailer", "://gitlab/User/1
=> true
8.返回gitlab登录界面重新登录
以上操作完成之后,再次回到登录窗口页面,重新使用root用户进行登录,这次可以正常登录了。表示密码重置成功了。