Apache suEXEC là gì?

suEXEC là tính năng của Apache Server, nó cung cấp khả năng chạy CGI dưới một user khác với user đang chạy Apache HTPD. Bình thường thì CGI chạy, nó chạy dưới user cùng với user chạy web server

Khi sử dụng tính năng này mục đích để gán user cho những VirtualHost khác nhau, khi được config đúng nó tăng khả năng bảo mật, tuy nhiên nếu không cẩn thận sẽ dẫn tới những lỗ hổng bảo mật khác.

Bạn cần thiết lập chmode các file phù hợp và quản lý user chặt chẽ, nếu không nên bỏ qua việc sử dụng suEXEC

Vị trí lưu suExec

#   httpd -V | grep SUEXEC

-D SUEXEC_BIN="/usr/sbin/suexec"

Hủy sử dụng suExec

Xác định được nơi lưu binary của suEXEC bạn chỉ việc xóa nó hoặc đổi tên, rồi khởi động lại Apache HTTPD là xong

# /usr/sbin/suexec /usr/sbin/suexec.backup
# service httpd restart

Sử dụng suEXEC

suEXEC được sử dụng trên nhưng VirtualHost, việc của bạn là gán user và usergoup trong thiết lập VirtualHost đó. Ví dụ ở host sau, khi chạy CGI (cũng là PHP chạy với FastCGI, PHP-FPM xem phần Apache Handler) nó sẽ chạy với user là abc và group là xyz

<VirtualHost 123.123.123.123:80>
    ....
    SuexecUserGroup abc xyz
    ....
</VirtualHost>

Tóm lại:

  • suEXEC dùng khi chạy CGI, chạy PHP với Handler là FastCGI , PHP-FPM nếu không thì tắt suEXEC đi
  • suEXEC được gọi có gán SuexecUserGroup ở VirtualHost