2014-11-11 18 views
6

Khi tạo hồ sơ php5-fpm cho mỗi người dùng trên thiết lập Apache mod_fastcgi, cách nào dưới đây là cách an toàn nhất và hiệu quả để cấp quyền truy cập máy chủ web cho nhóm PHP?Tạo hồ sơ php5-fpm cho mỗi người dùng theo cách bảo mật

Lựa chọn 1:

Thiết nhóm để www-data:

listen.owner = username 
listen.group = www-data 
listen.mode = 0660 

user = username 
group = www-data 

Trong khi làm việc này file được tạo bởi PHP sẽ có các thiết lập quyền sở hữu cho username: www-data trong khi file được tải lên thông qua SCP sẽ có tên người dùng : tên người dùng.


Phương án 2:

Thêm www-data vào nhóm bổ sung username:

listen.owner = username 
listen.group = username 
listen.mode = 0660 

user = username 
group = username 

-

usermod -aG username www-data 

nào trong các tùy chọn này được an toàn? Bạn cũng có thể chia sẻ một phương pháp tốt hơn.

Tôi đã kiểm tra các hướng dẫn sau đây:

Nhưng họ tất cả được viết trước khi lỗi #67060 được phát hiện và cố định.

Trả lời

0

Tôi đang sử dụng thiết lập sau đây trên LEMP của tôi (Nginx + PHP-FPM). Đối với Apache, điều này cũng sẽ được áp dụng.

PHP-FPM chạy nhiều hồ như nobody:user1, nobody:user2 ...

Nginx chạy như nginx:nginx

tài nginx là thành viên của mỗi user1, user2 .. nhóm:

# usermod -a -G user5 nginx 

Quyền đối với tệp:

root:root drwx--x--x /home 
user1:user1 drwx--x--- /home/user1      (1) 
user1:user1 rwxr-x--- /home/user1/site.com/config.php (2) 
user1:user1 drwxrwx--- /home/user1/site.com/uploads  (3) 
nobody:user1 rw-rw---- /home/user1/site.com/uploads/avatar.gif (4) 

(1) Thư mục chính của người dùng không có quyền số x cho other, do đó, nhóm php-fpm hoạt động như nobody:user2 sẽ không có quyền truy cập vào /home/user1 và ngược lại.

(2) tập lệnh php không có w cho group, do đó, nó không thể tạo tệp trong htdocs.

(3) Trên uploads dir, chúng tôi phải bật theo cách thủ công quyền truy cập ghi cho nhóm user1, để cho phép tập lệnh php đặt tệp ở đó.Đừng quên để vô hiệu hóa xử lý php cho uploads, trong nginx này được thực hiện bởi

server { 
    .... 
    location ^~ /uploads/ { } 

nhưng đối với Apache bạn nên kiểm tra.

(4) được tải lên các tập tin cũng cần phải có w cho group nếu chúng ta muốn user1 để có thể chỉnh sửa các file sau qua ftp hoặc ssh (đăng nhập như user1:user1). Mã php cũng có thể chỉnh sửa qua ftp từ user1owner.

Nginx sẽ có read quyền truy cập vào tất cả người dùng và write quyền truy cập vào tất cả các cập nhật của người dùng kể từ khi sử dụng nginx là thành viên của mỗi user1, user2 ... nhóm. Bạn không nên quên thêm nó vào tất cả các nhóm sau này. Bạn cũng có thể sửa đổi useradd tập lệnh để tự động thực hiện.

Các vấn đề liên quan