File permissions WordPress an toàn: cách thiết kế theo server và deployment

Cách thiết kế file permissions WordPress theo owner, group, web process và deployment model; tránh chmod 777 và kiểm soát writable scope an toàn.

File permissions WordPress với phân quyền thư mục và file, bảo vệ wp-config.php và tránh quyền 777

File permissions WordPress nên được thiết kế theo đúng hosting, user/group và deployment model của website. Không có một bộ permission duy nhất phù hợp mọi server. Mục tiêu là cấp đủ quyền để WordPress và quy trình vận hành hoạt động, nhưng không mở rộng quyền ghi vượt quá nhu cầu. Đây là một lớp trong hardening WordPress tổng thể, nơi filesystem control cần phối hợp với owner/group, update workflow và monitoring.

Đừng bắt đầu bằng “chmod 777”

777 cấp quyền đọc/ghi/thực thi cho owner, group và others. Dùng rộng rãi để “sửa lỗi permission” có thể tạo rủi ro đáng kể. Nếu website chỉ hoạt động khi mở quyền quá mức, cần tìm nguyên nhân owner/group hoặc deploy model thay vì giữ cấu hình đó lâu dài.

Thiết kế file permissions theo server và deployment

Map owner, group và process trước

Thành phần Cần biết Lý do
Web server/PHP User/group thực thi Xác định quyền đọc/ghi thật sự cần
Deploy account User/group và workflow Tránh conflict với web server
WordPress core Ai được phép update Kiểm soát writable scope
Uploads/cache Thư mục cần ghi runtime Phân biệt với code directory
wp-config.php Ai cần đọc Bảo vệ secret/config nhạy cảm

Permission là một phần của mô hình vận hành

Shared hosting, VPS, container và managed WordPress có thể dùng ownership khác nhau. Vì vậy con số permission chỉ có ý nghĩa khi biết user/group thực tế. WordPress Hardening khuyến nghị giới hạn quyền file và tránh để file writable rộng hơn mức cần thiết.

Code và runtime data không nên được đối xử giống nhau

Core, plugin và theme là code; uploads, cache và một số generated files là runtime data. Nếu kiến trúc cho phép, giảm khả năng web process ghi vào code directory giúp hạn chế một số đường persistence. Tuy nhiên thay đổi này cần tương thích với update/deploy workflow.

Kiểm tra trước khi thay đổi

  1. Ghi current owner/group/permission.
  2. Xác định process nào thật sự cần ghi.
  3. Chọn phạm vi pilot nhỏ.
  4. Backup hoặc chuẩn bị rollback.
  5. Thay đổi permission theo mô hình server.
  6. Smoke test upload, update, cache và frontend.
  7. Giám sát lỗi permission sau rollout.

wp-config.php cần xử lý riêng

wp-config.php chứa cấu hình và secret, nên quyền truy cập cần phù hợp với server model. Không áp dụng một con số copy-paste mà không kiểm tra owner/group. Xem bảo vệ wp-config, salts và secrets.

PASS/FAIL sau thay đổi

Check PASS FAIL
Least write access Chỉ process cần thiết có quyền ghi Code writable rộng ngoài nhu cầu
Functionality Upload/update/cache hoạt động theo thiết kế Site lỗi vì permission
Rollback Có state trước thay đổi Không biết permission/owner ban đầu
Monitoring Có theo dõi permission drift Thay đổi không kiểm soát

Không sửa permission mù quáng sau malware

Nếu file bị chèn mã độc, permission rộng có thể là một yếu tố nhưng chưa chắc là entry point. Hãy điều tra source ghi file, credential, plugin/theme vulnerability và persistence. Xem tìm file PHP mới tạo/chỉnh sửa và persistence WordPress malware.

Nguồn chính thức

Kết luận

File permissions WordPress an toàn không phải một bảng số cố định. Hãy bắt đầu từ owner/group/process, tách code khỏi runtime data khi kiến trúc cho phép, giảm quyền ghi theo nhu cầu thực tế và luôn có rollback + validation.

◇
Cần hỗ trợ kiểm tra và xử lý website?Đội ngũ SecureWebOps sẵn sàng hỗ trợ theo phạm vi phù hợp.
Liên hệ ngay →
Đoàn Trình Dục
Về tác giả Đoàn Trình Dục TD Digital · Website Operations & Security

Đoàn Trình Dục là tác giả nội dung trên SecureWebOps. Các bài viết tập trung vào bảo mật WordPress, giám sát an ninh website, malware/backdoor, hardening, backup/recovery và Incident Response theo hướng thực hành, có bước kiểm tra, bằng chứng, validation và rollback khi phù hợp.

Xem hồ sơ tác giả →