Trong Linux, người dùng thông thường và superuser được phép truy cập các dịch vụ thông qua xác thực mật khẩu. Trong trường hợp người dùng thông thường không nhớ mật khẩu của mình, superuser có thể reset mật khẩu của người dùng thông thường ngay từ terminal. Tuy nhiên, nếu người dùng root mất mật khẩu thì sao? Bài viết này sẽ xem xét cách khôi phục mật khẩu root đã mất trong Linux bằng 4 phương pháp khác nhau.
Lưu ý: Mặc dù các phương pháp sau sẽ hoạt động trên hầu hết mọi hệ thống Linux, nhưng điều quan trọng cần lưu ý là một số bản phân phối, chẳng hạn như Ubuntu, vô hiệu hóa người dùng root theo mặc định. Đối với những bản phân phối đó, bạn có thể truy cập shell gốc bằng cách chạy sudo -s.
Reset mật khẩu root bằng Sudo
Cách dễ nhất để reset mật khẩu root là tận dụng người dùng thông thường hiện là thành viên của nhóm người dùng "sudo". Để kiểm tra xem người dùng hiện tại của bạn có phải là sudoer hay không, hãy sử dụng lệnh groups.

Lưu ý: Một số bản phân phối sẽ sử dụng nhóm "wheel" để chỉ ra rằng người dùng hiện tại là một phần của sudoers.
Sau khi xác định được người dùng hiện tại có thể sử dụng sudo, hãy chạy lệnh sau:
sudo passwd root
Cung cấp mật khẩu mới cho người dùng root của bạn, sau đó nhập lại để xác nhận.

Kiểm tra xem mật khẩu root mới của bạn có hoạt động bình thường không bằng cách chạy su.

Reset mật khẩu root bằng GRUB
Ngoài sudo, bạn cũng có thể reset mật khẩu root của hệ thống Linux thông qua GRUB bootloader. Điều này hữu ích nếu bạn không có người dùng có khả năng sudo để thực hiện thay đổi mật khẩu từ terminal. Để thực hiện việc này, bạn cần buộc máy khởi động ở "single user mode" tự động load một shell root khả dụng.
Bắt đầu bằng cách khởi động lại hệ thống Linux, sau đó nhấn mũi tên xuống để ngăn máy khởi động vượt qua menu GRUB.

Nhấn E trên menu GRUB để thực hiện thay đổi tạm thời trên boot script của hệ thống.
Bạn cần sửa đổi hoặc thay đổi từ chế độ "read-only" sang chế độ "read-write". Tìm dòng bắt đầu bằng "linux". Tìm ro và đổi thành rw. Thêm init=/bin/bash vào cuối dòng.

Nhấn F10, sau đó chọn mục đầu tiên trong menu bootloader. Thao tác này sẽ hiển thị màn hình có prompt.

Mount hệ thống file gốc của bạn ở chế độ read-write:
mount -n -o remount,rw /
Bây giờ bạn có thể reset mật khẩu root đã mất bằng cách sử dụng lệnh sau:
passwd root

Sau khi hoàn tất, hãy chạy lệnh sau để thoát khỏi dấu nhắc và khởi động vào máy tính của bạn:
exec /sbin/init
Reset mật khẩu root bằng Systemd Debug
Ngoài việc sử dụng GRUB bootloader, bạn cũng có thể sử dụng chế độ Systemd Debug để reset mật khẩu root của hệ thống. Bắt đầu bằng cách mở file cấu hình GRUB bằng trình soạn thảo văn bản yêu thích của bạn:
sudo nano /etc/default/grub
Tìm dòng có chứa “GRUB_CMDLINE_LINUX”, sau đó thêm nội dung sau vào trong dấu ngoặc kép:
systemd.debug-shell

Lưu file cấu hình GRUB, sau đó tạo lại thiết lập GRUB cho hệ thống của bạn:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Khởi động lại hệ thống, sau đó đợi cho đến khi bạn đến dấu nhắc đăng nhập của máy.
Nhấn Ctrl + Alt + F9 để khởi động vào debug root shell.

Chạy passwd trên debug root shell. Thao tác này sẽ đưa ra lời nhắc để bạn có thể nhập và xác nhận mật khẩu root mới của mình.

Xác nhận rằng nó hoạt động bình thường bằng cách vào một TTY khác và đăng nhập với tư cách là người dùng root. Ví dụ, nhấn Ctrl + Alt + F2 sẽ chuyển phiên của bạn sang một TTY chưa sử dụng trong hệ thống.

Lưu ý: Debug Mode Systemd sẽ vẫn tồn tại cho đến khi bạn xóa giá trị "systemd.debug-shell" trong file cấu hình GRUB và tạo lại thiết lập GRUB cho hệ thống.
Reset mật khẩu root bằng Live ISO
Nếu có Linux Live ISO, bạn cũng có thể khởi động vào đó và sử dụng nó để reset mật khẩu root. Bắt đầu bằng cách tải xuống phiên bản Ubuntu mới nhất và tạo ổ boot từ đó.
Khởi động vào ổ di động thay vì ổ cứng của bạn. Bạn có thể thực hiện việc này bằng cách vào BIOS của hệ thống và đặt mức ưu tiên khởi động cho ổ di động của bạn.
Trên màn hình hiển thị, hãy chọn Try Ubuntu. Thao tác này sẽ đưa bạn đến màn hình Live.

Mở terminal và nhập lệnh sau để trở thành root:
sudo -s
Tìm vị trí phân vùng root của ổ cứng bằng lệnh sau:
fdisk -l
Trong hầu hết các trường hợp, phân vùng root sẽ là “/dev/sda4” hoặc “/dev/vda4”, mặc dù có thể khác nhau tùy thuộc vào cách phân vùng ổ cứng của bạn.
Mount phân vùng ổ cứng của hệ thống cần khôi phục bằng lệnh sau:
mkdir /mnt/recover
mount /dev/vda4 /mnt/recover

Tại thời điểm này, chúng ta cần tự giam mình trong thư mục “/mnt/recover”. Điều này có nghĩa là chúng ta đang giả vờ ở trên hệ thống file Linux thông thường. Điều này chỉ đơn giản được gọi là chrooting.
chroot /mnt/recover
Sử dụng lệnh sau để reset mật khẩu root Linux của bạn:
passwd root

Sau khi hoàn tất, hãy thoát khỏi shell chroot:
exit
Bỏ mount phân vùng root và thoát root của bạn:
umount /mnt/recover
exit
Cuối cùng, hãy tháo Live CD và khởi động lại hệ thống Linux của bạn.

Học cách thay đổi mật khẩu root trong Linux chỉ là một phần trong việc giữ cho máy của bạn luôn trong tình trạng tốt nhất. Khám phá cách bạn có thể bảo vệ hệ thống của mình khỏi những tác nhân độc hại bằng cách mã hóa ổ cứng ngay hôm nay.
Xem thêm: