Reset mật khẩu root trên CentOS 7
Hướng dẫn Linux Server · cập nhật 26/07/2026
Để đặt lại mật khẩu root trên CentOS 7, bạn khởi động lại máy, sửa dòng boot trong GRUB thành chế độ single, chạy passwd root rồi khởi động lại. Mất khoảng 5 phút và cần vào được màn hình console của máy.
Cách này dùng khi mất mật khẩu root và không còn tài khoản nào khác có quyền sudo. CentOS 7 làm khác CentOS 6, nên hướng dẫn cũ cho bản 6 không áp dụng được.
- Khởi động lại máy, dừng ở màn hình GRUB.
- Sửa dòng boot để vào chế độ single.
- Đổi mật khẩu root và đánh dấu cập nhật SELinux.
- Khởi động lại và đăng nhập bằng mật khẩu mới.
Cần truy cập console vật lý hoặc KVM IP. Không làm được qua SSH vì phải can thiệp lúc máy đang khởi động. CentOS 7 hết hỗ trợ từ 30/06/2024, bài giữ cho máy chủ cũ còn đang chạy.
Vì sao phải vào chế độ single
Chế độ single khởi động hệ thống với quyền root mà không hỏi mật khẩu, chỉ nạp phần nhân tối thiểu và không mở dịch vụ mạng. Đó là lối vào duy nhất khi đã mất mật khẩu. CentOS 7 dùng systemd nên phải trỏ tiến trình khởi đầu sang shell bằng tham số init=/sysroot/bin/sh, khác cách làm trên CentOS 6.
Chuẩn bị trước khi khởi động lại máy
Việc này can thiệp lúc máy đang khởi động nên không làm qua SSH được. Bạn cần vào được console vật lý hoặc KVM IP, và máy sẽ ngừng phục vụ khoảng 5 tới 10 phút. Chuẩn bị sẵn mật khẩu mới trước khi bắt đầu, vì lúc ở chế độ single sẽ không có trình quản lý mật khẩu nào để tra.
Cách reset mật khẩu root trên CentOS 7
Bốn bước dưới đây làm trực tiếp trên console, không cần cài thêm công cụ nào. Bạn sẽ dừng máy ở màn hình GRUB, sửa một tham số khởi động để vào shell với quyền root, đổi mật khẩu, rồi khởi động lại. Toàn bộ quá trình gõ tay trên bàn phím vật lý hoặc cửa sổ KVM.
1. Dừng ở màn hình GRUB
Khởi động lại máy. Khi hiện màn hình chọn kernel, bấm phím mũi tên để dừng bộ đếm.

2. Sửa dòng boot
Bấm phím e để mở trình sửa dòng lệnh khởi động.

Tìm dòng bắt đầu bằng linux16, đổi ro thành rw init=/sysroot/bin/sh.

Bấm Ctrl + X để khởi động với tham số vừa sửa.

3. Đổi mật khẩu root
Chuyển thư mục gốc sang phân vùng hệ thống thật:
chroot /sysroot
Đặt mật khẩu mới:
passwd root
Đánh dấu để SELinux gán lại nhãn khi khởi động lần sau. Bỏ bước này thì máy có thể không đăng nhập được:
touch /.autorelabel
4. Khởi động lại
exit
reboot
Lần khởi động này lâu hơn bình thường vì SELinux đang gán lại nhãn cho toàn bộ hệ thống. Đừng ngắt điện giữa chừng.
Xử lý các lỗi thường gặp
Ba tình huống dưới đây chiếm phần lớn các ca làm không thành công ở lần đầu. Mỗi tình huống có dấu hiệu riêng nên nhìn màn hình là biết rơi vào ca nào, không phải làm lại từ đầu để dò.
Không dừng được ở màn hình GRUB. Bộ đếm quá ngắn. Bấm liên tục phím mũi tên xuống ngay khi máy vừa qua màn hình BIOS.
Lệnh passwd báo Authentication token manipulation error. Chưa chạy chroot /sysroot, nên đang đổi mật khẩu trên hệ thống tạm chứ không phải hệ thống thật. Chạy lại lệnh chroot rồi thử lại.
Khởi động xong vẫn không đăng nhập được. Thiếu bước touch /.autorelabel nên SELinux chặn. Làm lại toàn bộ quy trình và nhớ chạy lệnh đó trước khi thoát.
Việc nên làm sau khi đổi xong
Đăng nhập lại bằng mật khẩu mới rồi tạo thêm một tài khoản thường có quyền sudo. Lần sau quên mật khẩu root, bạn đăng nhập bằng tài khoản này và đổi lại ngay, không phải khởi động lại máy và dừng dịch vụ.
useradd quantri
passwd quantri
usermod -aG wheel quantri
CentOS 7 đã hết hỗ trợ, không còn bản vá bảo mật. Nếu máy chủ còn chạy dịch vụ thật, nên tính đường chuyển sang AlmaLinux 9 hoặc Ubuntu 22.04.