Câu hỏi 403 Bị cấm trên tập tin được đặt tại / var / www / html khi cố tải xuống?


Tôi đang cố gắng sao chép một tệp từ máy chủ của tôi sang máy tính để bàn của tôi. Tôi đặt nó vào /var/www/html (nơi các trang web) và khi tôi cố gắng tải xuống, tôi nhận được 403 Forbidden. Tôi thậm chí đã thử chmod 777 trên tệp và nó không khắc phục được.

Tôi đang làm gì sai và tại sao tôi nhận được lỗi này?


4
2018-05-09 17:34


gốc




Các câu trả lời:


Bạn cần sửa đổi tệp để nó được sở hữu bởi người dùng Apache. Theo mặc định, Apache sẽ chạy như www-data người dùng (được tìm thấy trong www-data nhóm). Bạn có thể dùng chown để sửa đổi chủ sở hữu của tệp (có thể phải được sử dụng với sudo):

chown -R www-data:www-data /var/www/html

Cuối cùng, bạn cần đảm bảo các tệp có ít nhất đọc và thực thi quyền cho người dùng Apache. Bạn đã làm điều này, như bạn đã nói, nhưng sau khi sửa đổi tất cả các quyền / chủ sở hữu tập tin, bạn nên đảm bảo mọi thứ đều ổn bằng cách chạy ls -l /var/www/html. Như một biện pháp bảo mật, bạn cũng nên xóa mọi quyền đối với những người dùng khác:

chmod -R 0550 /var/www/html

Lưu ý rằng nếu bạn sử dụng PHP hoặc một ngôn ngữ kịch bản khác yêu cầu quyền ghi, bạn có thể phải sửa đổi mặt nạ quyền ở trên để 0770 thay thế. Để đề phòng, chỉ sử dụng mặt nạ đó trên các thư mục cần thiết (ví dụ: để ghi dữ liệu bộ nhớ cache của trang web hoặc tải tệp lên)


9
2018-05-09 18:04



chown: 'www-data: www-data' người dùng không hợp lệ - BigOmega
cũng đã thử apache như người dùng và nó đã không đưa ra một lỗi nhưng tôi vẫn không thể tải về các tập tin (403) - BigOmega
@ Ryan bạn cần kiểm tra httpd.conf hoặc là apache2.conf tệp để xem tên người dùng Apache thực sự là gì. - Breakthrough
Ok, sẽ làm. Cũng có thể các loại tệp có các quyền khác nhau không? Bởi vì tôi có thể duyệt các trang html phong phú với hình ảnh và như vậy trên cùng một đường dẫn. - BigOmega
@Ryan kiểm tra sử dụng ls -l những người sở hữu những tập tin đó và họ có quyền gì. Bạn có đang cố gắng truy cập tệp HTML thô hoặc một số trang động (ví dụ: PHP / Python / Ruby) không? Ngoài ra, hãy đảm bảo bạn không đặt bất kỳ loại quy tắc chặn nào trong .htaccess, httpd.confhoặc tệp cấu hình trang web. - Breakthrough


Tôi đang sử dụng CentOS 7 + Apache, lệnh duy nhất giải quyết vấn đề của tôi là nó (vì tôi đã thử chown + chmod trước đây):

sudo setenforce 0 #disable SELinux

Và sau đó, tôi có thể tải xuống tệp (trong trường hợp của tôi, anyfile.zip), nhưng, nó có thể mở cửa cho kẻ tấn công viết và thực thi mã.


4
2018-01-29 06:06





Bạn có thể có SELinux đã bật. Cách đơn giản nhất xung quanh nó cho mục đích hiện tại là để chown các tập tin trong câu hỏi với ID người dùng Apache đang chạy như.


0
2018-05-09 17:51