Phần 1. Ẩn tài khoản admin khỏi danh sách người dùng trong Admin
Mục tiêu của bài viết
Chỉ cho phép tồn tại duy nhất một tài khoản admin đặc biệt (ví dụ:
admin123admin
)Tự động xóa bất kỳ tài khoản admin nào khác nếu xuất hiện
Ngăn không cho phép tạo thêm tài khoản admin mới, kể cả qua form tạo user
Ẩn tài khoản đặc biệt khỏi danh sách người dùng trong admin
Cảnh báo:
Khi đã dùng phần 1 thì KHÔNG ĐƯỢC dùng phần 2.
Muốn chuyển sang phần 2, phải xóa toàn bộ code của phần 1 trước khi triển khai phần 2 để tránh xung đột và mất dữ liệu user.
1.1 Chuẩn bị và lưu ý trước khi thực hiện
Đảm bảo bạn backup website trước khi thay đổi code
Kiểm tra user cần giữ lại có username chính xác và có vai trò
administrator
Truy cập file
functions.php
của theme (hoặc child theme đang dùng)
1.2. Mã nguồn đầy đủ
Sao chép đoạn code dưới đây và dán vào cuối file functions.php
trong thư mục theme của bạn:
1. Ẩn tài khoản khỏi danh sách người dùng
1.3. Giải thích chi tiết từng phần
1.3.1 Ẩn tài khoản admin khỏi danh sách người dùng
Hook pre_user_query
can thiệp vào truy vấn danh sách user và loại bỏ tài khoản có username là admin123admin
. Việc này giúp tài khoản đó không hiển thị trong bảng quản trị user, tránh bị lộ.
1.3.2 Chặn tạo tài khoản admin mới
Filter user_has_cap
sẽ kiểm tra nếu người dùng đang cố tạo user mới với role administrator
thì sẽ bị chặn lại. Đồng thời cũng chặn cả việc thay đổi role của user hiện tại thành administrator
.
1.3.3 Tự động xóa mọi tài khoản admin khác
Hook init
kiểm tra danh sách user có role administrator
. Nếu phát hiện có user không trùng với admin123admin
thì sẽ tự động xóa user đó ra khỏi hệ thống.
1.4. Lưu ý bảo mật
Đảm bảo chỉ có một tài khoản admin cần giữ lại, không bị nhập sai username
Luôn cập nhật WordPress và plugin để tránh bị tấn công từ các lỗ hổng cũ
Hạn chế cài plugin từ nguồn không rõ ràng
1. 5. Kết luận phần 1
Giải pháp này phù hợp cho các website WordPress yêu cầu mức bảo mật cao, chỉ cho phép duy trì một tài khoản quản trị viên duy nhất. Khi kết hợp với bảo mật hosting, plugin firewall, và cập nhật định kỳ, bạn sẽ giảm thiểu đáng kể nguy cơ bị xâm nhập qua đường tạo user admin trái phép.
Phần 2: Cấp quyền truy cập cho nhiều admin phụ có kiểm soát (nâng cao)
Mục tiêu
Cho phép tạo thêm admin khác, nhưng không được đăng nhập admin ngay
Khi một admin phụ đăng nhập, hệ thống gửi email về cho admin chính để phê duyệt
Sau khi được duyệt, admin phụ có thể vào admin panel trong 60 phút
Sau 60 phút, quyền hết hạn và cần yêu cầu lại
Điều kiện triển khai
Bạn phải gỡ toàn bộ các đoạn code sau nếu đã dùng ở phần 1:
Lý do: Những đoạn code trên sẽ:
Tự động xóa tài khoản admin phụ ngay cả trước khi có thể xin phê duyệt
Ngăn tạo thêm user admin, khiến phần 2 không thể hoạt động đúng chức năng
2.1 Cho phép tạo admin phụ, nhưng kiểm soát quyền truy cập bằng xác nhận từ admin chính
Dưới đây là toàn bộ code hoàn chỉnh cho phần 2, giúp bạn triển khai tính năng quản lý quyền truy cập admin với xác nhận từ admin chính và thời gian truy cập giới hạn:
2.2. Cách sử dụng:
Bước 1: Thêm mã trên vào file
functions.php
của theme hoặc tạo một plugin mới và dán mã vào đó.Bước 2: Sửa đổi
MAIN_ADMIN_USERNAME
thành tên đăng nhập của admin chính bạn.Bước 3: Khi bạn tạo admin phụ, họ sẽ không thể đăng nhập ngay. Email sẽ được gửi đến admin chính để duyệt quyền truy cập.
Bước 4: Sau khi admin chính duyệt qua email, admin phụ sẽ có quyền truy cập trong 60 phút.
Lưu ý quan trọng phần 2:
Nếu bạn đã sử dụng phần 1 (ẩn và xóa admin), hãy xóa toàn bộ mã phần 1 trước khi triển khai phần 2.
Phần 2 không hạn chế việc tạo admin, chỉ kiểm soát quyền truy cập sau khi admin được tạo.