Quên mật khẩu Ubuntu? Cách Reset Pass qua GRUB & Recovery Mode trong 5 phút

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

Tại sao bạn phải can thiệp vào GRUB?

Làm quản trị hệ thống, việc quên mật khẩu xảy ra thường xuyên hơn bạn nghĩ. Mình từng tiếp nhận một cụm 5 server Ubuntu 22.04 từ đồng nghiệp cũ mà không có file KeePass. Cảm giác lúc đó giống như bị nhốt ngoài cửa nhà mình vậy. Trên Ubuntu, tài khoản root thường bị khóa mặc định và chúng ta phụ thuộc vào sudo. Nếu mất quyền này, can thiệp vào bootloader là con đường cứu cánh duy nhất.

Đừng vội cài lại OS. Việc này chỉ làm mất thời gian và dữ liệu quý giá. Chúng ta sẽ tận dụng GRUB (Grand Unified Bootloader) để đưa hệ thống vào trạng thái đặc biệt. Trạng thái này cho phép chỉnh sửa file hệ thống mà không cần mật khẩu cũ. Đây là kỹ năng sống còn cho DevOps khi xử lý sự cố tại chỗ hoặc qua KVM/IPMI.

Chuẩn bị môi trường khôi phục

Bạn cần quyền truy cập vật lý hoặc giao diện console (như VPS trên DigitalOcean, Linode hoặc VMware). Quy trình bắt đầu như sau:

  1. Khởi động lại hệ thống: Thao tác này bắt buộc để ngắt tiến trình boot thông thường.
  2. Truy cập Menu GRUB:
    • Với máy dùng BIOS cũ: Nhấn giữ phím Shift ngay khi máy vừa bật.
    • Với máy dùng UEFI (hầu hết laptop/server mới): Nhấn phím Esc liên tục sau khi logo nhà sản xuất biến mất.

Nếu màn hình hiện ra nền xanh hoặc đen với các dòng lựa chọn, bạn đã thành công. Nếu máy boot thẳng vào màn hình đăng nhập, nghĩa là bạn bấm phím quá chậm. Hãy thử lại lần nữa.

2 cách reset mật khẩu an toàn và nhanh chóng

Tùy vào tình trạng hệ thống, bạn có thể chọn cách “chính thống” hoặc cách can thiệp sâu vào kernel.

Cách 1: Sử dụng Recovery Mode (Dành cho người mới)

Đây là giải pháp an toàn nhất được Ubuntu tích hợp sẵn.

  1. Tại menu GRUB, chọn Advanced options for Ubuntu và nhấn Enter.
  2. Tìm dòng có đuôi (recovery mode), thường là dòng thứ hai, rồi nhấn Enter.
  3. Khi menu Recovery Menu hiện ra, chọn dòng root – Drop to root shell prompt. Nhấn Enter hai lần để xác nhận.

Lúc này, bạn đang ở quyền root nhưng ổ cứng chỉ ở chế độ Read-only (chỉ đọc). Bạn không thể đổi mật khẩu nếu không chuyển nó sang chế độ Read-Write. Hãy gõ lệnh:

mount -o remount,rw /

Sau đó, tiến hành đặt lại mật khẩu mới cho user của bạn:

passwd tên_user_của_bạn

Hệ thống sẽ yêu cầu nhập pass mới hai lần. Cuối cùng, gõ exit và chọn resume để vào lại Ubuntu.

Cách 2: Chỉnh sửa tham số Kernel (Khi Recovery Mode bị khóa)

Nhiều hệ thống bảo mật cao sẽ yêu cầu mật khẩu root ngay cả khi vào Recovery Mode. Lúc này, mẹo chỉnh tham số boot là cứu cánh cuối cùng.

  1. Tại menu GRUB chính, di chuyển đến dòng Ubuntu đầu tiên và nhấn phím ‘e’.
  2. Tìm dòng bắt đầu bằng từ linux. Nó thường chứa đoạn ro quiet splash ở cuối.
  3. Xóa cụm ro quiet splash đó đi và thay bằng: rw init=/bin/bash.
  4. Nhấn Ctrl + X hoặc F10 để khởi động cấu hình tạm thời này.

Máy sẽ boot thẳng vào shell prompt với quyền root mà không hỏi bất cứ điều gì. Vì chúng ta đã thêm tham số rw, hệ thống file đã sẵn sàng để ghi dữ liệu. Bạn chỉ cần thực hiện:

passwd tên_user
sync
reboot -f

Bảo mật hệ thống sau khi khôi phục

Sau khi đăng nhập thành công bằng mật khẩu mới, bạn nên rà soát lại bảo mật. Việc bất kỳ ai cũng có thể reset pass qua GRUB là một rủi ro vật lý lớn.

Chặn đứng nguy cơ từ GRUB

Nếu server đặt ở nơi công cộng, hãy đặt mật khẩu cho chính GRUB. Điều này ngăn chặn việc chỉnh sửa tham số boot trái phép. Sử dụng lệnh sau để tạo hash mật khẩu:

grub-mkpasswd-pbkdf2

Ngoài ra, hãy cân nhắc dùng mã hóa ổ đĩa LUKS. Với LUKS, dù kẻ xấu vào được shell root, họ cũng không thể đọc dữ liệu nếu thiếu khóa giải mã.

Kiểm tra lịch sử đăng nhập

Hãy kiểm tra lại log để chắc chắn không có ai khác can thiệp vào máy trong lúc bạn vắng mặt:

tail -n 20 /var/log/auth.log

Nếu thấy dòng password changed khớp với thời gian bạn thao tác, hệ thống vẫn an toàn. Kỹ thuật này tuy đơn giản nhưng cực kỳ hiệu quả khi bạn đối mặt với các tình huống “dở khóc dở cười” trên Ubuntu.

Share: