Tôi có một ứng dụng web trên một máy chủ lưu trữ chia sẻ linux. Hãy nói rằng tôi có một .htpasswd
tệp, một số cấu hình lưu mật khẩu cơ sở dữ liệu và thường không muốn mọi người rình mò mã nguồn của tôi để tìm lỗ hổng.
Máy chủ web (apache) cần truy cập đọc (và ghi trong một số trường hợp) vào các tệp trên. Tuy nhiên tôi không muốn những người khác trên cùng một máy chủ được chia sẻ có quyền truy cập.
Tôi chưa bao giờ hiểu làm thế nào là nó hoạt động. Câu hỏi ở đây tương tự nhưng dường như chỉ ra nhiều hơn về việc ngăn ứng dụng web lưu trữ tệp mật khẩu một cách tình cờ.
AFAIK, tất cả những gì tôi phải làm việc là các quyền linux cơ bản. Trên một máy chủ, tôi dự kiến sẽ cấp quyền "cho người khác" cho apache. Sau đó xóa quyền của nhóm, tất cả người dùng khác đang ở, từ chối họ truy cập. Điều này có vẻ khá bùng binh. Trên một máy chủ khác, có một nobody
nhóm được thiết lập public_html
chỉ với quyền nhóm được đặt.
Một mối quan tâm là nếu người dùng apache có quyền truy cập vào tệp của tôi, một tập lệnh đơn giản có thể được viết và thực thi để có quyền truy cập bởi người dùng khác:
<?php
header("Content-Type: text/plain");
include $_GET['f'];
?>
TLDR: Tôi cần apache để có quyền truy cập vào các tệp và mật khẩu nguồn, nhưng không phải người dùng khác trên cùng một máy (ngoại trừ quản trị viên ofc).
Một thiết lập phổ biến là gì?
Câu hỏi liên quan:
- Làm thế nào để cho phép apache truy cập vào một tệp nhưng ngăn người khác xem nó?
- https://unix.stackexchange.com/questions/30879/what-user-should-apache-and-php-be-ricky-as-what-permissions-should-var-www
- https://askubfox.com/questions/26848/permissions-su-how-can-apache-access-files-in-my-home-directory