Đặt lại mật khẩu người dùng chính trong GitLab

Mật khẩu GitLab bị quên

Truy cập vào bảng điều khiển GitLab để thay đổi mật khẩu quản trị viên

Tiền đề: Đảm bảo cả GitLab và Redis đều đang chạy. Có thể sử dụng lệnh gitlab-ctl start hoặc gitlab-ctl restart để khởi động hoặc khởi động lại.

  1. Chuyển đến thư mục bin của GitLab, nếu bạn đã cấu hình biến hệ thống PATH thì có thể không cần chuyển. (Nếu bạn cài đặt GitLab trên máy chủ bằng cách sử dụng tài khoản người dùng cụ thể, thì cần phải chuyển sang tài khoản đó) Khi đã sẵn sàng, chúng ta có thể thực hiện lệnh sau để truy cập vào bảng điều khiển GitLab:
gitlab-rails console -e production
# Đối với các phiên bản thấp hơn, hãy thử lệnh sau:
gitlab-rails console prod

Nếu không thể truy cập bảng điều khiển GitLab bằng các lệnh trên, hãy kiểm tra trang web chính thức của GitLab để biết thêm thông tin.

Sau khi truy cập vào bảng điều khiển:

[root@server ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.3p199 (2021-04-05 revision 68471) [x86_64-linux]
 GitLab:       14.0.2 (f2b9d4a12c) FOSS
 GitLab Shell: 13.18.0
 PostgreSQL:   13.3
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4)
irb(main):001:0>
  1. Xem tất cả người dùng, nhập User.all trong bảng điều khiển GitLab để xem danh sách người dùng, như sau:
[root@server ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.3p199 (2021-04-05 revision 68471) [x86_64-linux]
 GitLab:       14.0.2 (f2b9d4a12c) FOSS
 GitLab Shell: 13.18.0
 PostgreSQL:   13.3
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4)
irb(main):001:0> User.all
=> #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @admin>, #<User id:4 @code>, #<User id:5 @user>]>
irb(main):002:0>
  1. Tìm ID của người dùng cần đặt lại mật khẩu, tài khoản quản trị thường có ID là 1, thực hiện lệnh sau để lấy người dùng (ví dụ: tìm người dùng có ID=1):
[root@server ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.3p199 (2021-04-05 revision 68471) [x86_64-linux]
 GitLab:       14.0.2 (f2b9d4a12c) FOSS
 GitLab Shell: 13.18.0
 PostgreSQL:   13.3
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4)
irb(main):001:0> User.all
=> #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @admin>, #<User id:4 @code>, #<User id:5 @user>]>
irb(main):002:0> usr=User.find_by(id:1)
=> #<User id:1 @admin>
irb(main):003:0>
  1. Thực hiện lệnh sau trong bảng điều khiển GitLab để thay đổi mật khẩu:
[root@server ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.3p199 (2021-04-05 revision 68471) [x86_64-linux]
 GitLab:       14.0.2 (f2b9d4a12c) FOSS
 GitLab Shell: 13.18.0
 PostgreSQL:   13.3
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4)
irb(main):001:0> User.all
=> #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @admin>, #<User id:4 @code>, #<User id:5 @user>]>
irb(main):002:0> usr=User.find_by(id:1)
=> #<User id:1 @admin>
irb(main):003:0> usr.password='newpass123'
=> "newpass123"
irb(main):004:0> usr.password_confirmation='newpass123'
=> "newpass123"
irb(main):005:0>

Thực hiện usr.password='newpass123' để thiết lập mật khẩu, sau đó usr.password_confirmation='newpass123' để xác nhận mật khẩu. Hai lần nhập mật khẩu phải giống nhau.

Lưu ý: Mật khẩu không nên quá đơn giản, tốt nhất không sử dụng ký tự đặc biệt ngay từ đầu, vì có thể gây lỗi!

  1. Thực hiện lệnh dưới đây trong bảng điều khiển GitLab để lưu mật khẩu:
[root@server ~]# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.3p199 (2021-04-05 revision 68471) [x86_64-linux]
 GitLab:       14.0.2 (f2b9d4a12c) FOSS
 GitLab Shell: 13.18.0
 PostgreSQL:   13.3
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.4)
irb(main):001:0> User.all
=> #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @admin>, #<User id:4 @code>, #<User id:5 @user>]>
irb(main):002:0> usr=User.find_by(id:1)
=> #<User id:1 @admin>
irb(main):003:0> usr.password='newpass123'
=> "newpass123"
irb(main):004:0> usr.password_confirmation='newpass123'
=> "newpass123"
irb(main):005:0> usr.save!
Enqueued ActionMailer::MailDeliveryJob (Job ID: 3333c9db-7974-4a10-9f46-d12ee99c8ee6) 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>

Thực hiện usr.save! để lưu thông tin mật khẩu vừa được thiết lập cho người dùng, chú ý dấu chấm than (!) ở cuối lệnh. Khi thành công, bảng điều khiển GitLab sẽ hiển thị ...true và một số thông tin khác, biểu thị việc thiết lập thành công! Lưu ý rằng một Job gửi email sẽ được kích hoạt, gửi một email đến địa chỉ liên kết với tài khoản đã đặt lại mật khẩu.

Khác

Nếu bạn biết email của người dùng và muốn lấy thông tin người dùng, có thể thực hiện lệnh sau trong bảng điều khiển GitLab:

usr=User.find_by(email:'jenkins@domain.com')

Thẻ: gitlab ruby Rails Devise

Đăng vào ngày 25 tháng 5 lúc 09:33