Tôi thấy rất nhiều lời khuyên trực tuyến khác nhau về vị trí phục vụ ứng dụng web của bạn, người dùng chạy ứng dụng nào, v.v.Thực tiễn tốt nhất cho quyền người dùng Linux để chạy ứng dụng web như thế nào?
Ví dụ: tôi đã thấy nó được phân phối từ:/var/www/site ,/srv/www/site,/home/$ USER/trang web.
Tôi đã thấy người dùng là dữ liệu www, $ USER (tức là tài khoản người dùng của tôi) hoặc người dùng tùy chỉnh được tạo riêng cho mục đích đó (ví dụ: uwsgi của người dùng).
Về mặt bảo mật, chương trình tốt nhất mà tôi có thể chọn là gì?
Để tham khảo, tôi đang cố gắng triển khai một trang web Django với Nginx và uwsgi.
Ngay bây giờ, uwsgi đang chạy dưới dạng gốc trong chế độ hoàng đế, với uid/gid được đặt làm dữ liệu www, do đó, chư hầu xuất hiện với các quyền tương tự như công nhân Nginx. Tôi đang phục vụ từ/nhà, nhưng nghĩ đến việc di chuyển.
Nếu tôi có virtualenv, nó sẽ nằm trong/var/lib/appname/venv? Ngoài ra, để rõ ràng, người dùng ứng dụng có thể, ví dụ: 'uwsgi', nhưng không phải là người dùng tôi đăng nhập như thông qua ssh (và có quyền sudo)? – user1431368
FWIW, mã python của tôi sống trong/home vì [hướng dẫn Django] (https://docs.djangoproject.com/en/1.4/intro/tutorial01/) (phần "Mã này nên ở đâu?") – user1431368
Có , 'uwsgi' sẽ là lựa chọn tốt cho người dùng ứng dụng của bạn, trừ khi bạn có nhiều ứng dụng đang chạy, trong trường hợp đó bạn có thể muốn người dùng trên mỗi ứng dụng. Người dùng KHÔNG nên có quyền sudo HOẶC quyền đăng nhập. Theo hướng dẫn chỉ ra, điều quan trọng nhất là không có mã của bạn dưới gốc web của bạn. – bonsaiviking