Saya memiliki Utilitas PHP yang menerima permintaan pos dengan file sebagai parameter. Sekarang ketika permintaan itu diterima saya ingin menjalankannya sebagai pengguna root. Misalnya ketika pengguna mengklik www.mydomain.com/sendtextfiletoftp.php dari tukang pos atau alat lain apa pun itu harus dijalankan sebagai pengguna root.
Saya sudah lelah dengan sudo visudo
dan menambahkan baris-baris di bawah ini ke file sudoers, tetapi tetap saja permintaan dijalankan dengan pengguna apache
www-data ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php
apache ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php
File yang sama ketika dijalankan sebagai pengguna sudo dari command line ( sudo php72 /path/to/file/sendtextfiletoftp.php
) berfungsi dengan baik.
Terima kasih atas bantuannya.
Jawaban:
Selain memungkinkan pengguna apache menjadi root untuk suatu perintah, Anda perlu melakukan panggilan di dalam kode Anda yang mencakup 'sudo'. Khas:
Dalam visudo saya akan meletakkan sesuatu seperti
apache ALL = NOPASSWD: / path / my_root_command
Dalam kode /var/www/html/sendtextfiletoftp.php saya, untuk bagian tertentu yang membutuhkan akses root, saya akan meletakkan sesuatu seperti:
exec ("sudo / path / my_root_command");
sumber