Gitlab忘記超級使用者密碼重置方式
阿新 • • 發佈:2022-03-30
GItlab 密碼重置
進入Gitlab控制檯更改管理員密碼
前提條件:需要保證Gitlab、Redis同時處於啟動狀態。可以執行gitlab-ctl start
或者gitlab-ctl restart
命令進行啟動或者重啟。
- 切換到Gitlab的bin目錄下,如果你配置了系統變數PATH則可以不用切換。(如果你在伺服器上安裝Gitlab時使用的指定伺服器使用者,則需要你切換使用者到當初安裝Gitlab的賬戶上去)
準備就緒後,我們可以執行如下命令進入Gitlab控制的了,命令:
gitlab-rails console -e production # 低版本可以嘗試使用下面一句命令: gitlab-rails console production
如果使用上述命令入法進入Gitlab控制檯,建議前往Gitlab官網查詢進入Gitlab控制檯的方式進行進入哦。
進入控制檯後如下:
[root@hy ~]# gitlab-rails console -e production -------------------------------------------------------------------------------- Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] GitLab: 13.10.3 (b1774ad36a9) FOSS GitLab Shell: 13.17.0 PostgreSQL: 12.6 -------------------------------------------------------------------------------- Loading production environment (Rails 6.0.3.4) irb(main):001:0>
- 檢視所有使用者,在Gitlab控制檯輸入
User.all
即可看到所有的使用者,如下:
[root@hy ~]# gitlab-rails console -e production -------------------------------------------------------------------------------- Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] GitLab: 13.10.3 (b1774ad36a9) FOSS GitLab Shell: 13.17.0 PostgreSQL: 12.6 -------------------------------------------------------------------------------- Loading production environment (Rails 6.0.3.4) irb(main):001:0> User.all => #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @root>, #<User id:4 @code>, #<User id:5 @hy>]> irb(main):002:0>
- 找到自己需要重置的使用者id號,管理員賬戶通常id為1,在Gitlab控制檯執行如下命令即可獲取到使用者(如下:定位到id=1的使用者):
[root@hy ~]# gitlab-rails console -e production -------------------------------------------------------------------------------- Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] GitLab: 13.10.3 (b1774ad36a9) FOSS GitLab Shell: 13.17.0 PostgreSQL: 12.6 -------------------------------------------------------------------------------- Loading production environment (Rails 6.0.3.4) irb(main):001:0> User.all => #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @root>, #<User id:4 @code>, #<User id:5 @hy>]> irb(main):002:0> user=User.where(id:1).first => #<User id:1 @root> rb(main):003:0>
- 在Gitlab控制檯執行如下命令修改密碼:
[root@hy ~]# gitlab-rails console -e production -------------------------------------------------------------------------------- Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] GitLab: 13.10.3 (b1774ad36a9) FOSS GitLab Shell: 13.17.0 PostgreSQL: 12.6 -------------------------------------------------------------------------------- Loading production environment (Rails 6.0.3.4) irb(main):001:0> User.all => #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @root>, #<User id:4 @code>, #<User id:5 @hy>]> irb(main):002:0> user=User.where(id:1).first => #<User id:1 @root> irb(main):003:0> user.password='abc123456' => "abc123456" irb(main):004:0> user.password_confirmation='abc123456' => "abc123456" irb(main):005:0>
執行user.password='abc123456'是設定密碼,然後執行user.password_confirmation='abc123456'是確認密碼,兩次密碼需要設定成一致的。
注意:密碼不能設定過於簡單,最好先不要設定特殊字元,會報錯,可能需要轉義!
- 在Gitlab控制之下下面的命令儲存密碼:
[root@hy ~]# gitlab-rails console -e production -------------------------------------------------------------------------------- Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] GitLab: 13.10.3 (b1774ad36a9) FOSS GitLab Shell: 13.17.0 PostgreSQL: 12.6 -------------------------------------------------------------------------------- Loading production environment (Rails 6.0.3.4) irb(main):001:0> User.all => #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @root>, #<User id:4 @code>, #<User id:5 @hy>]> irb(main):002:0> user=User.where(id:1).first => #<User id:1 @root> irb(main):003:0> user.password='abc123456' => "abc123456" irb(main):004:0> user.password_confirmation='abc123456' => "abc123456" irb(main):005:0> user.save! Enqueued ActionMailer::MailDeliveryJob (Job ID: 2222b8da-6863-4909-8e35-c01ee88c9dd5) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007f85c6d40ac8 @uri=#<URI::GID gid://gitlab/User/5>>]} => true irb(main):006:0>
執行user.save!
就是儲存上面我們給使用者設定的密碼資訊,切記後面有個英文感嘆號(!)。
如上,看到Gitlab控制檯儲存密碼成功後會打印出 ...true
等一堆資訊,表示設定成功了!上面可以看到觸發了傳送郵件的Job,它會發送一封電子郵件到剛才重置密碼的賬戶繫結的郵箱中,內容大致如下
其他
如果你知道使用者的電子郵件,想獲取使用者資訊,可以通過Gitlab控制檯執行命令進行獲取哦,如下
user=User.where(email:'[email protected]').first