Tại sao Apache bắt đầu chạy một tiến trình đơn lẻ như root, và một tiến trình khác là root và người dùng wwwdata?


8

Tôi đang chạy Apache Worker-MPM, PHP 5.3.2 và FCGID.

Apache chạy tốt hơn trước, nhưng tôi nhận thấy rằng có một quá trình apache chạy bằng root và một tiến trình thứ hai chạy như cả root và như wwwdata. Phần còn lại của các quá trình đang chạy như wwwdata.

Có ai chạy vào đây chưa và nó có an toàn không?


Làm thế nào là một trong các quá trình apache chạy như hai người dùng root và wwwdata? Người dùng nó chạy dưới được đặt trong tệp cấu hình chính. Tôi sẽ kiểm tra nhật ký truy cập máy chủ của bạn (không phải lỗi) kiểm tra nhật ký truy cập / người dùng / ứng dụng trong / var / log và xem bạn có thấy điều gì đáng ngờ không
Anagio 21/03

Không có bộ nhật ký cung cấp bất cứ điều gì bất thường. Tôi không biết làm thế nào nó chạy theo cách đó.
flink

@Anagio " Làm thế nào một trong các quy trình apache chạy như hai người dùng root và wwwdata? " Tôi không nghĩ đó là về một quy trình chạy như hai người dùng riêng biệt (sẽ không hoạt động), mà chỉ đơn giản là về hai quy trình chạy như những người dùng khác nhau . Nó bình thường.
Bruno

@Bruno Trong danh sách quy trình, có nhiều quy trình Apache được liệt kê. Có một người dùng có root và một người dùng có "root, wwwdata" Đó là giao diện của nó. Tôi không nhớ là đã từng thấy hai tên người dùng được liệt kê như thế.
nhấp nháy

@flink, bạn sử dụng lệnh nào để liệt kê các quy trình?
Bruno

Câu trả lời:


9

Apache HTTPd bắt đầu như một quá trình được chạy bởi rootđể có thể lắng nghe các cổng <1024 (80 cho HTTP và 443 cho HTTPS). Người dùng bình thường không thể làm điều đó.

Ngoài ra, một số tệp cấu hình chỉ có thể đọc được bằng root, trong quá trình khởi chạy. Ví dụ: người dùng Apache của bạn (ví dụ www-data) không cần phải đọc tệp khóa riêng nếu bạn đã cấu hình SSL.

Thật tốt khi không chạy mọi thứ như root: theo cách này, một lỗi hoặc dịch vụ bị xâm nhập sẽ không thể gây ra nhiều thiệt hại cho hệ thống như khi chạy bằng root.

BIÊN TẬP:

(Tôi chỉ giả sử www-datathay vì wwwdata, nhưng không sao, nó sẽ chạy khi người dùng bạn đặt nó chạy.)

Không có bộ nhật ký cung cấp bất cứ điều gì bất thường. Tôi không biết làm thế nào nó chạy theo cách đó.

Nó chỉ chạy theo cách này: nó bắt đầu một quá trình với quyền root và sau đó giả mạo người dùng khác là người dùng bạn đã chọn.

Nếu bạn nhận được id quá trình gốc (ví dụ với ps auwx | grep apache2, hoặc grep httpdtùy thuộc vào phân phối), sau đó chạy pstree -p -u THE_PROCESS_ID, bạn sẽ thấy cấu trúc phân cấp rõ ràng. Quá trình cha mẹ phải luôn luôn chạy vĩnh viễn (nếu không, bạn cũng sẽ giết các tiến trình con của nó).

Xem Usertài liệu (Chỉ thị chung Apache MPM) :

Nếu bạn khởi động máy chủ với quyền root thì quá trình cha mẹ vẫn chạy như root là bình thường.


1
UID và GID của dữ liệu www dưới 1000, không được suexec / fcgid cho phép, vì vậy tôi đã tạo một người dùng mới, wwwdata với UID và GID cao hơn để chạy mọi thứ.
nháy mắt

Đó là một số thông tin tuyệt vời. Tôi cần một số nghiên cứu dòng lệnh nghiêm trọng. Cảm ơn!
nhấp nháy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.