Cách reset mật khẩu root trên Linux

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ệnh groups kiểm tra xem người dùng hiện tại có thể chạy lệnh root thông qua sudo hay không.
Lệnh groups kiểm tra xem người dùng hiện tại có thể chạy lệnh root thông qua sudo hay không.

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.

Quy trình thay đổi mật khẩu root bằng sudo.
Quy trình thay đổi mật khẩu root bằng sudo.

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.

Lệnh su kiểm tra xem mật khẩu root đã được thay đổi bình thường chưa.
Lệnh su kiểm tra xem mật khẩu root đã được thay đổi bình thường chưa.

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.

Menu khởi động GRUB chọn mục "Advanced options for Arch Linux".
Menu khởi động GRUB chọn mục "Advanced options for Arch Linux".

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.

Menu GRUB với các tùy chọn khởi động "rw" và "init" cho single user mode.
Menu GRUB với các tùy chọn khởi động "rw" và "init" cho single user mode.

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.

Hệ thống đang chạy ở single user mode.
Hệ thống đang chạy ở single user mode.

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
Quy trình thay đổi mật khẩu root ở single user mode.
Quy trình thay đổi mật khẩu root ở single user mode.

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
File cấu hình GRUB đã sửa đổi cho chế độ Systemd Debug.
File cấu hình GRUB đã sửa đổi cho chế độ Systemd Debug.

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.

Dấu nhắc Debug Mode đang hoạt động bình thường.
Dấu nhắc Debug Mode đang hoạt động bình thường.

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.

Quy trình thay đổi mật khẩu root ở Debug Mode.
Quy trình thay đổi mật khẩu root ở Debug Mode.

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.

Xác nhận việc thay đổi mật khẩu root đã thành công.
Xác nhận việc thay đổi mật khẩu root đã thành cô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.

Tùy chọn "Try Ubuntu" cho phiên Live ISO.
Tùy chọn "Try Ubuntu" cho phiên Live ISO.

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
Terminal hiển thị quy trình mount phân vùng root trong hệ thống Live ISO.
Terminal hiển thị quy trình mount phân vùng root trong hệ thống Live ISO.

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
Quá trình chroot và thay đổi mật khẩu của người dùng root.
Quá trình chroot và thay đổi mật khẩu của người dùng 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.

Mật khẩu root đã thay đổi đang hoạt động bình thường.
Mật khẩu root đã thay đổi đang hoạt động bình thường.

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:

Thứ Sáu, 28/03/2025 15:39
52 👨 7.719
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng