1. 程式人生 > >強制找回gitlab管理員密碼

強制找回gitlab管理員密碼

強制找回gitlab管理員密碼

最近使用gitlab的時候發現管理員密碼忘記,現將找回密碼的操作過程記錄下來。

1.在gitlab登入視窗

如果密碼忘記了登入不進入,可以先嚐試點選登入框下方的Forgot your password來通過郵箱的方式找回,如果郵箱不可以使用了,則看下面的強制找回方法

 

2.輸入郵箱賬號找回

輸入當初設定的郵箱帳號,這一步前提是郵箱可以正常使用的情況下才可以使用的方法

 

3.通過xshell連線到gitlab安裝的伺服器

輸入su - git 切換到git使用者下操作,切換之後預設的當前目錄就可以ls檢視到gitlab的命令檔案,如圖所示可以看到gitlab-rails檔案,下一步會使用此檔案進入控制檯

[[email protected] ~]# 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的查詢語句,才會被解析

-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使用者進行登入,這次可以正常登入了。表示密碼重置成功了。