Bật tài khoản root trên Ubuntu 22.04
Hướng dẫn Linux Server · cập nhật 28/07/2026
Ubuntu 22.04 khoá tài khoản root ngay từ lúc cài, không đặt mật khẩu cho nó. Để bật, bạn chạy sudo passwd root đặt mật khẩu, rồi giới hạn ai được dùng lệnh su. Mất khoảng 3 phút.
Trước khi làm, cân nhắc: sudo đáp ứng được gần hết nhu cầu quản trị mà vẫn ghi lại ai chạy lệnh gì. Chỉ bật root khi thật sự cần, ví dụ chạy script cũ không hỗ trợ sudo, hoặc phần mềm đòi đăng nhập trực tiếp bằng root.
- Chuyển tạm sang shell root bằng sudo.
- Đặt mật khẩu cho tài khoản root.
- Giới hạn nhóm được phép dùng lệnh su.
Đã kiểm trên Ubuntu 22.04 LTS. Cách này áp dụng được cho Ubuntu 20.04 và 24.04, đường dẫn file cấu hình giống nhau.
Vì sao Ubuntu khoá sẵn tài khoản root
Ubuntu để trống mật khẩu root, nên không ai đăng nhập trực tiếp bằng tài khoản đó được. Thay vào đó, người dùng tạo lúc cài máy được đưa vào nhóm sudo và chạy lệnh quản trị qua sudo.
Cách này an toàn hơn ở hai điểm. Thứ nhất, mỗi lệnh quản trị đều ghi lại ai chạy trong /var/log/auth.log, còn đăng nhập bằng root thì mọi thao tác đều mang tên root. Thứ hai, kẻ dò mật khẩu từ xa không biết tên tài khoản nào có quyền, trong khi root thì máy nào cũng có.
Nên dùng sudo hay bật hẳn root
Hai cách đều cho quyền quản trị đầy đủ, khác nhau ở chỗ truy vết và rủi ro. Bảng dưới đây giúp chọn nhanh.
| Tiêu chí | Dùng sudo | Bật tài khoản root |
|---|---|---|
| Ghi lại ai chạy lệnh | Có, trong auth.log | Không phân biệt được người |
| Rủi ro bị dò mật khẩu | Thấp, tên tài khoản không đoán được | Cao, mọi máy đều có tài khoản root |
| Chạy script cũ | Có script không hỗ trợ | Chạy được hết |
| Gõ lệnh dài | Phải thêm sudo mỗi lệnh | Không cần |
| Nên dùng khi | Việc quản trị hàng ngày | Script cũ hoặc phần mềm bắt buộc |
Cách bật tài khoản root trên Ubuntu 22.04
Ba bước dưới đây chạy qua SSH hoặc console, bằng tài khoản đã có quyền sudo. Không cần khởi động lại máy và dịch vụ đang chạy không bị gián đoạn.
1. Chuyển sang shell root
sudo -s
Nhập mật khẩu của chính tài khoản bạn đang dùng, không phải mật khẩu root. Dấu nhắc đổi từ $ sang # nghĩa là đã vào shell root.
2. Đặt mật khẩu cho root
sudo passwd root
Hệ thống hỏi mật khẩu mới hai lần. Báo password updated successfully là xong. Từ giờ đăng nhập được bằng lệnh:
su -
3. Giới hạn ai được dùng lệnh su
Mặc định mọi người dùng đều gõ được su và thử mật khẩu root không giới hạn số lần. Giới hạn theo nhóm để chỉ người trong nhóm mới thử được.
Mở file cấu hình:
nano /etc/pam.d/su
Thêm dòng sau vào cuối file:
auth required pam_wheel.so group=adm
Rồi đưa những người được phép vào nhóm adm:
usermod -aG adm ten-nguoi-dung
Kiểm tra kết quả
Mở một phiên SSH mới, giữ nguyên phiên đang chạy để còn đường lùi nếu cấu hình sai. Trong phiên mới, thử hai việc sau.
su -
id
Đăng nhập được và id in ra uid=0(root) nghĩa là đã bật thành công. Thử tiếp bằng một tài khoản KHÔNG thuộc nhóm adm: lệnh su phải báo Permission denied ngay, không hỏi mật khẩu.
Xử lý các lỗi thường gặp
Ba tình huống dưới đây hay gặp sau khi sửa file PAM.
Lệnh su báo Permission denied dù đã thêm vào nhóm. Người dùng phải đăng xuất rồi đăng nhập lại thì nhóm mới có hiệu lực. Kiểm bằng id ten-nguoi-dung, phải thấy adm trong danh sách.
Không ai dùng được su nữa, kể cả tài khoản đúng. Sai tên nhóm trong file PAM. Dùng phiên SSH còn mở, chạy sudo nano /etc/pam.d/su rồi thêm dấu thăng vào đầu dòng vừa thêm để vô hiệu hoá.
Đăng nhập SSH thẳng bằng root vẫn bị từ chối. Đó là thiết lập riêng của SSH, không liên quan mật khẩu root. Sửa PermitRootLogin trong /etc/ssh/sshd_config. Cân nhắc kỹ: mở cổng này là mở đúng thứ kẻ dò mật khẩu tìm kiếm.
Việc nên làm sau khi bật
Đặt mật khẩu root dài và khác hẳn các mật khẩu khác trên máy. Tài khoản này không bị khoá sau nhiều lần sai như một số dịch vụ khác, nên mật khẩu yếu là mở cửa cho công cụ dò tự động.
Nếu chỉ cần root cho một việc rồi thôi, khoá lại sau khi xong bằng passwd -l root. Lệnh này vô hiệu hoá mật khẩu mà không xoá tài khoản, mở lại bằng passwd -u root.