Mất quyền admin WordPress — quên mật khẩu mà email không nhận được, hoặc tài khoản bị hacker xoá — vẫn lấy lại được bằng nhiều cách. Bài này xếp từ cách an toàn nhất tới cách kỹ thuật hơn, kèm cảnh báo những bước phải dọn sau khi xong để không tạo lỗ hổng.
Các cách lấy lại quyền quản trị
- Nút “Quên mật khẩu” ở trang đăng nhập — thử trước, nhanh nhất nếu email còn nhận được.
- WP-CLI (sạch nhất nếu có SSH):
wp user list wp user update 1 --user_pass="MatKhauMoiManh"Cách này dùng đúng cơ chế băm mật khẩu của WordPress. Tạo admin mới:
wp user create ten email@... --role=administrator --user_pass="...". - Qua file
functions.php(bằng FTP): thêm tạmwp_set_password('mat_khau_moi', 1);(số 1 là ID người dùng). Đăng nhập xong phải xoá dòng đó ngay — nếu không, mỗi lần tải trang mật khẩu lại bị đặt lại. - Qua phpMyAdmin: sửa cột
user_passtrong bảngwp_users.
Cảnh báo khi dùng phpMyAdmin
Tài liệu cũ thường hướng dẫn chọn hàm băm MD5 khi sửa mật khẩu trong phpMyAdmin. Cách này vẫn cho đăng nhập được (WordPress tự nhận diện và băm lại theo chuẩn mới ở lần đăng nhập kế), nhưng MD5 là cách yếu, lỗi thời — chỉ nên coi là bước đăng nhập tạm. Đăng nhập xong, hãy vào phần Người dùng đổi lại mật khẩu để WordPress lưu bằng chuẩn hiện đại. Tốt nhất vẫn là ưu tiên WP-CLI.
Khi tài khoản admin bị hacker xoá
Nếu bạn không chỉ quên mật khẩu mà tài khoản quản trị đã bị xoá hoặc bị tụt quyền, hãy tạo một admin mới thay vì cố khôi phục cái cũ:
- WP-CLI:
wp user create tenmoi [email protected] --role=administrator --user_pass="MatKhauManh"— nhanh và sạch nhất. - phpMyAdmin: thêm bản ghi vào bảng
wp_usersrồi gán quyền administrator trongwp_usermeta(khoáwp_capabilities). Lưu ý phần này dễ sai cú pháp dữ liệu serialize, nên ưu tiên WP-CLI nếu có thể.
Mất quyền do bị xoá tài khoản thường là dấu hiệu web đã bị xâm nhập — sau khi lấy lại quyền, hãy xử theo bài website bị hack phải làm gì để truy lỗ hổng.
Phòng mất quyền lần sau
Giữ ít nhất hai tài khoản quản trị tin cậy; bảo đảm email admin luôn hoạt động; dùng trình quản lý mật khẩu; bật xác thực hai lớp. Nếu mất quyền do nghi bị tấn công, xem thêm website bị hack phải làm gì.
Dùng functions.php an toàn (khi không có SSH)
Nếu không dùng được WP-CLI mà vẫn vào được FTP, cách qua functions.php rất tiện — nhưng phải làm đúng để không tạo lỗ hổng:
- Mở file
functions.phpcủa theme đang dùng, thêm ngay sau dòng<?php:wp_set_password('MatKhauMoiManh', 1);(số 1 là ID người dùng cần đặt lại). - Tải web lên một lần để dòng đó chạy, rồi đăng nhập bằng mật khẩu mới.
- Xoá ngay dòng vừa thêm. Nếu để lại, mỗi lần có người tải trang, mật khẩu lại bị đặt lại về giá trị đó — vừa phiền, vừa là rủi ro nếu ai biết.
Đây là điểm nhiều hướng dẫn cũ quên nhấn: mọi cách “đặt lại nhanh” (qua functions.php, qua công cụ repair, qua script khẩn cấp) đều phải dọn sạch ngay sau khi xong. Để quên chính là cách vô tình mở cửa cho kẻ xấu.
Câu hỏi thường gặp
Tôi không có SSH thì lấy lại cách nào?
Dùng nút “Quên mật khẩu”, hoặc sửa qua functions.php/phpMyAdmin. Nhớ dọn lại sau khi xong để không để hở.
Đặt mật khẩu bằng MD5 trong phpMyAdmin có an toàn không?
Chỉ an toàn như một bước tạm. Hãy đăng nhập rồi đổi lại mật khẩu trong phần Người dùng để WordPress lưu bằng hàm băm hiện đại.
