Lỗi mất quyền admin WordPress

Lỗi mất quyền trong WordPress đó là khi đăng nhập vào /wp-admin sẽ gặp các hiện tượng sau:

  • Bị trả về trang chủ.
  • Vào được wp-admin nhưng báo không đủ quyền.
Xử lý lỗi mất quyền admin WordPress

Nguyên nhân

Nguyên nhân thường là do một plugin nào đó có hook can thiệp vào quyền của user, nhưng do quyền ban đầu của user không chính xác hoặc không theo quy chuẩn chung nên bị lỗi mất luôn quyền admin.

Yêu cầu:

  • Hosting/VPS phải có WP-CLI
  • Phải SSH được ở quyền root hoặc user

Cách xử lý

Để khắc phục thì bạn hãy truy cập vào SSH của gói host đang bị lỗi. Ở đây mình dùng cPanel nên sẽ vào bằng cách cPanel => Terminal.

Xử lý lỗi mất quyền admin WordPres

Sau đó tiến hành cd (change directory) vào thư mục chứa source WordPress đang bị lỗi. Ví dụ:

$ cd public_html
$ cd dotrungquan.info

Sau khi cd vào rồi, để chắc ăn thì kiểm tra lại domain của source đó bằng lệnh sau:

Lưu ý: Nếu bạn đang chạy ở quyền root hãy thêm option --allow-root sau mỗi lệnh

$ wp option get siteurl

Nếu kết quả trả về đúng domain gói đang bị lỗi thì làm tiếp. Kế tiếp là lấy thông tin user admin mà bạn đang muốn reset quyền, ví dụ mình grep username là admin.

$ wp user list | grep admin

Kết quả được tìm thấy

[dotrungquan@sv]$ wp user list | grep admin
1       admin  admin  admin@dotrungquan.info        2022-05-01 08:57:04     administrator

Ở thông tin này ta sẽ có 2 chỗ cần lưu ý:

  • Cột đầu tiên là ID của username, nhớ id này để chút nữa thực hiện lệnh reset quyền.
  • Cột role là quyền của user này. Trong WordPress sẽ có các quyền như customer, subscribe, editor, administrator.

Thường thì website bị lỗi là cột role họ trống không có gì cả, như ảnh đính kèm bên dưới.

CleanShot 2022 06 30 at 08.56.14

Như vậy để set user này làm admin, ta dùng lệnh sau:

Trong đó, 1 là ID user ta cần thiết lập quyền.

wp user update 2 --role=administrator
Hoặc
wp user update addmin --role=administrator

Một trường hợp khác

Một trường hợp bị mất quyền khác là xung đột tên tiền tố database khi bạn sử dụng các plugin thay đổi tiền tố nhưng lại chưa thay đổi hết.

Ví dụ trong table wp_usermeta vẫn còn khai báo các key là tên tiền tố cũ. Để fix nhanh nhất thì cài WP-CLI Rename Prefix vào:

$ wp package install iandunn/wp-cli-rename-db-prefix

Sau đó chạy lệnh sau để đưa tiền tố database về mặc định là wp.

$ wp rename-db-prefix wp

Như vậy là đã hoàn tất.

4.8/5 - (13 bình chọn)
Bài viết liên quan