Đầu tiên, có một sự cân nhắc chính ảnh hưởng đến các cách tiếp cận thiết lập cần thiết:
Chỉ cần làm cho các hệ thống phân cấp cần thiết có thể đọc được (và duyệt qua - cho các thư mục) cho mọi người.
Rõ ràng, điều này chỉ hoạt động cho nội dung chỉ đọc (và do đó tĩnh).
Trong trường hợp này chỉ cần đảm bảo các thư mục sẽ được phục vụ có a=rx
quyền và tập tin trong đó có a=r
quyền - nghĩa là, người dùng không phải là người dùng thuộc sở hữu và nhóm người dùng được phép truy cập các thư mục và đọc các tệp trong đó.
Lưu ý rằng điều này sẽ làm cho các công cụ "xuất khẩu" có thể đọc được cho tất cả mọi người, không chỉ riêng Apache và điều này có thể gây ra vấn đề bảo mật.
Như Apache wiki gợi ý , tạo một nhóm riêng, làm cho Apache chạy với GID của nó và làm cho nhóm này có quyền truy cập phù hợp (R / O hoặc R / W nếu có) vào các tài nguyên.
Thực tế, Debian đã có nhóm này, www-data
, vì vậy bạn có thể chỉ cần thêm người dùng của mình vào nhóm đó. Một nhược điểm rõ ràng là họ sẽ tự động giành quyền truy cập vào các tài nguyên khác thuộc sở hữu của www-data
nhóm.
Sử dụng phân tách đặc quyền bằng cách sử dụng mpm-itk
hoặc một số cách tiếp cận khác. Điều này cho phép bạn phục vụ nội dung theo người dùng với các đặc quyền của mỗi người dùng (quy trình quản lý của apache chạy như root
nhưng công nhân xử lý nó sinh ra chạy với thông tin xác thực của người dùng được chỉ định.
Tôi không chắc điều này sẽ chơi tốt với mod_userdir
Tuy nhiên.
Cân nhắc sử dụng ACIX POSIX để thực hiện kiểm soát truy cập chi tiết hơn vào các thư mục này.