Tôi đang sử dụng tập lệnh php trên máy chủ apache/ubuntu để gọi một tập lệnh bash kích hoạt ứng dụng lấy tập lệnh python làm đối số (IDAPro).Lỗi quyền truy cập PHP/Ubuntu - QxcbConnection: Không thể kết nối để hiển thị bị hủy bỏ
PHP Mã
chdir('/var/www/dashboard/team/static/sql');
$output = exec('sudo -u rohan ./start.sh');
Bây giờ, các mã trên hoạt động tốt nếu tôi chạy file PHP từ nhà ga - nhưng chỉ khi tôi chạy nó như là người dùng root. Không cần phải nói, nếu tôi thực thi trực tiếp tệp bash nó cũng chạy.
Nhưng khi tôi chạy file PHP trên trình duyệt, nó không hoạt động và tôi nhận được lỗi sau trong nhật ký lỗi apache:
QXcbConnection: Could not connect to display
Aborted
Tôi hiểu rằng Apache/php chạy như 'www- dữ liệu 'người dùng (sử dụng' whoami 'để xác minh), và đó là lý do tại sao tôi có sudo trong exec của tôi. Tôi đã tinh chỉnh và sửa đổi quyền cho cả hai người dùng không có kết quả. Khi tôi chạy tệp php từ thiết bị đầu cuối là người dùng 'www-data', nó không có lỗi nhưng không làm bất cứ điều gì ngoại trừ hiển thị các thẻ echo ngẫu nhiên tôi ở đầu và cuối tập lệnh để gỡ lỗi nó.
Tôi là người mới sử dụng Linux, vì vậy mọi trợ giúp đều được đánh giá cao.
Cảm ơn cho 'XAUTHORITY'! – kyb