Bảo mật website5 phút đọc

Quyền file và thư mục WordPress an toàn: owner, 755, 644 và ngoại lệ

Hiểu owner, group, user chạy PHP và cách đặt quyền file WordPress theo nhu cầu ghi thực tế thay vì chmod 777 toàn website.

Đội WebAnToan rà owner group và quyền ghi của thư mục WordPress
Quyền an toàn bắt đầu từ user chạy PHP và vùng thật sự cần ghi, không chỉ từ một con số chmod.

Quyền file WordPress quyết định user nào được đọc, ghi hoặc đi qua thư mục. Mục tiêu không phải thuộc lòng 755/644 rồi áp dụng mọi nơi, mà là bảo đảm code chỉ được ghi bởi chủ sở hữu/quy trình deploy, còn những thư mục cần ghi như uploads hoặc cache được mở đúng phạm vi.

Hiểu owner, group và user chạy PHP

Hai website cùng dùng Nginx/PHP có thể cần quyền khác nếu PHP-FPM chạy theo từng user, chạy chung dưới www-data hoặc dùng shared hosting với suexec. Trước khi chmod, xác định owner/group hiện tại và tiến trình nào cần ghi. Permission đúng nhưng ownership sai vẫn gây lỗi.

Xác định owner và process
Thu hẹp vùng ghi
Kiểm thử update và upload
Quyền an toàn bắt đầu từ user chạy PHP và vùng thật sự cần ghi, không chỉ từ một con số chmod.

Mốc tham khảo 755 và 644

WordPress đưa ra 755 cho thư mục và 644 cho tệp như một sơ đồ phổ biến, với wp-config.php chặt hơn khi môi trường cho phép. Đây là điểm bắt đầu, không phải luật tuyệt đối. Một số hosting dùng 750/640; cache, backup và uploads có yêu cầu riêng.

Những nơi không nên ghi mặc định

  • WordPress core, wp-admin và wp-includes sau khi deploy.
  • Plugin và theme nếu cập nhật được quản lý ngoài Dashboard.
  • wp-config.php và cấu hình máy chủ.
  • Bản backup, log điều tra và baseline checksum.

Những nơi có thể cần ghi

Uploads, cache, thư mục update/upgrade tạm thời và một số plugin cần ghi. Chỉ cấp cho user/process cần thiết và theo hướng dẫn của thành phần. Nếu plugin đòi ghi toàn bộ root, cần đánh giá lại thiết kế thay vì mở rộng quyền ngay.

Vì sao 777 nguy hiểm?

777 cho mọi user khả năng đọc, ghi và đi qua thư mục. Trên máy chủ dùng chung hoặc khi một tiến trình khác bị chiếm, nó làm tăng phạm vi sửa tệp. WordPress nêu rõ không nên dùng 777 cho thư mục upload trong cấu hình suexec.

Quy trình thay đổi an toàn

  1. Ghi lại owner, group và mode hiện tại.
  2. Xác định thao tác nào thực sự cần ghi.
  3. Thử quyền chặt nhất trên staging.
  4. Áp theo thư mục cụ thể thay vì chmod -R toàn site.
  5. Kiểm thử update, upload, cache và rollback.
Permission không ngăn code đang chạy hợp lệ bị lợi dụng

Nếu PHP có quyền ghi uploads và plugin có lỗ hổng upload, attacker vẫn có thể ghi tại đó. Cần kết hợp vá lỗi, validation và chặn thực thi.

Nguồn tham khảo chính thức

Đối chiếu Changing File Permissions và phần file permissions trong Hardening WordPress.

Permission 777 thường là dấu vết của một lần chữa lỗi vội

Khi upload hoặc update thất bại, cách nhanh nhất nhiều người chọn là mở quyền toàn bộ thư mục. Website chạy lại ngay, nhưng web server cũng có thể sửa nhiều nơi hơn cần thiết. Nếu một plugin bị khai thác, attacker có sẵn không gian để đặt mã.

Ngược lại, chmod theo công thức cứng mà không hiểu owner/group có thể khóa update, cache và backup. Quyền file là bài toán giữa chức năng và giới hạn thiệt hại, không phải cuộc thi xem con số nào nhỏ nhất.

Đọc quyền theo luồng vận hành

Hãy hỏi process nào cần đọc, user nào cần deploy, thư mục nào thật sự cần ghi và thay đổi diễn ra qua CI/CD hay control panel. Core, plugin và theme thường không cần web server ghi liên tục; uploads, cache và thư mục tạm có nhu cầu khác.

Dấu hiệu quyền sở hữu đã lệch

  • File mới thuộc user khác sau mỗi lần update.
  • Plugin yêu cầu FTP credential dù trước đó không cần.
  • Cache chỉ hoạt động khi mở 777.
  • Backup restore tạo owner root khiến PHP không đọc được.
  • Attacker sửa được core dù đội vận hành không cấp quyền.

Ghi lại baseline owner/permission sau khi ổn định và cảnh báo sai lệch giúp đội ngũ phát hiện cả lỗi triển khai lẫn hành vi xâm nhập.

Kiểm tra từ ngoài vào trong

Permission hệ điều hành chỉ là một lớp. ACL, container volume, control panel và credential SFTP cũng quyết định ai sửa được file. Một thư mục 755 không giúp ích nếu tài khoản owner bị lộ.

Đừng sửa permission toàn site giữa production

Thử trên staging hoặc từng vùng, chụp trạng thái trước và có rollback. Sau thay đổi, kiểm tra upload, update, cache, backup và deploy để lỗi không âm thầm tích tụ.

Cụm gia cố WordPress sau phục hồi

Hoàn thiện cấu hình, quyền, danh tính và lớp phòng thủ theo một lộ trình có kiểm thử.

Câu hỏi thường gặp

Mọi website WordPress đều dùng 755 và 644 phải không?

Đây là mốc phổ biến nhưng còn phụ thuộc ownership, PHP handler và mô hình hosting.

Có nên dùng 777 khi upload lỗi không?

Không. Cần sửa owner/group hoặc cấp đúng thư mục thay vì mở quyền cho mọi user.

wp-config.php nên để quyền bao nhiêu?

Chặt nhất mà user chạy PHP vẫn đọc được; WordPress nêu 400/440 ở một số hệ thống nhưng phải kiểm thử môi trường thực tế.

Cần rà cấu hình bảo mật theo website thực tế?

WebAnToan có thể kiểm tra cấu hình, quyền, tài khoản và lớp phòng thủ mà không làm gián đoạn nghiệp vụ.

Gửi tình trạng website →

Website vừa được phục hồi?

Xác minh sạch trước khi vận hành lại

Rà persistence, credential, quyền truy cập và các luồng kinh doanh trước khi đóng sự cố hoặc gỡ chế độ bảo trì.

← Tất cả bài viết

Tiếp tục theo chủ đề

Bài viết liên quan

Hỗ trợ kỹ thuật website

Gửi tình trạng website cần hỗ trợ

Gửi 3 thông tin dưới đây để kỹ thuật viên kiểm tra sơ bộ và liên hệ lại.

Chỉ cần gửi tên miền và lỗi đang thấy. Không nhập mật khẩu hay mã OTP.