最近使用gitlab的时候发现管理员密码忘记,现将找回密码的操做过程记录下来。html
若是密码忘记了登陆不进入,能够先尝试点击登陆框下方的Forgot your password来经过邮箱的方式找回,若是邮箱不能够使用了,则看下面的强制找回方法node
输入当初设置的邮箱账号,这一步前提是邮箱能够正常使用的状况下才能够使用的方法linux
输入su - git 切换到git用户下操做,切换以后默认的当前目录就能够ls查看到gitlab的命令文件,如图所示能够看到gitlab-rails文件,下一步会使用此文件进入控制台nginx
[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.
-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
输入gitlab-rails console production进入gitlab控制台,只有进入到控制台以后,才能够输入gitlab的查询语句,才会被解析git
-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)
输入user = User.where(id:1).first查询id为1的用户对象,由于超级管理员用户默认都是1,也能够更加username来查询用户对象,管理员帐户对象查询到以后,能够从返回的信息中看到admin为true,username为rootredis
irb(main):001:0> user = User.where(id:1).first => #<User id:1 @root>
输入user.password='密码',密码位置填写您新的密码便可。而后再输入user.save!保存用户对象sql
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
以上操做完成以后,再次回到登陆窗口页面,从新使用root用户进行登陆,此次能够正常登陆了。表示密码重置成功了。shell