Php có quyền truy cập vào hệ thống tập tin - bị từ chối cấp phép


0

Tôi đang cố gắng theo dõi một vấn đề php với một công cụ mà tôi đang cố gắng cài đặt và tôi đã theo dõi nó, tôi tin rằng, đối với vấn đề cấp phép với hệ thống tập tin, tôi tin rằng ...

Bây giờ tôi có tệp .php đơn giản sau:

<?php
system("/bin/ls");
?>

Khi tôi chạy cái này, tôi thấy lỗi sau trong / var / log / httpd / error_log:

sh: /bin/ls: Permission denied

Nếu tôi thay đổi php để chạy:

<?php
system("/bin/env");
?>

Sau đó, tôi thấy đầu ra mà tôi đang mong đợi.

Vì vậy, đó không phải là thực thi không có quyền, đó là những gì mà thực thi đang cố đọc có vấn đề.

(Công cụ tôi đang cố gắng để làm việc ở đây là phplicensewatcher - một công cụ để theo dõi những gì đang diễn ra với các trình quản lý giấy phép khác nhau)

Cảm ơn

Câu trả lời:


1

Hai điều đầu tiên tôi sẽ kiểm tra:

  • PHP đang chạy theo người dùng nào? Nếu được sinh ra bởi Apache, nó có khả năng chạy dưới dạng "không ai", "www" hoặc "apache" tùy thuộc vào phiên bản và cấu hình.

  • Thư mục nào bạn đang cố gắng liệt kê? Kiểm tra các quyền trên thư mục đó. Liệu người dùng PHP đang chạy như có quyền truy cập vào thư mục đó?


Tôi đã kiểm tra xem người dùng nào đang chạy bằng cách gọi 'ngủ 30' thông qua php và kiểm tra danh sách quy trình. Nó chạy như 'apache'. Tôi đã chạy thành công "sudo -u apache / bin / ls /". Và tôi chỉ đang cố gắng liệt kê bất kỳ thư mục nào. Tôi đã thử nó với /
Hugh

Bạn đã bật SELinux chưa? Nó sẽ chặn những thứ như thế này như là biện pháp an ninh. Chạy getenforcelệnh để kiểm tra.
John T

Aha! Điều đó là vậy đó! Nó hoạt động nếu tôi vô hiệu hóa SELinux. Rất cám ơn
Hugh
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.