Soluzione à PHP chì ùn hà micca permessu per eseguisce u cumandimu exec in Linux
Riferimenti ufficiali rilativi
PHP exec Linux sudoers file Sudo CommandsMudificazioni quandu si corre in modu fastcgi
Quandu PHP funziona in modu fastcgi, i so permessi sò ereditati da u so prugramma ospitante. Pigliemu l'apache cum'è esempiu per spiegà. Prima, avemu bisognu di truvà u cuntu sottu chì apache hè in esecuzione, è dopu aduprà vi o vim per edità u fugliale / etc / sudoers, è aghjunghje l'esempiu di riferenza seguente à u fugliale. In u cuntenutu chì seguita, utilizate prima u cumandamentu ps per truvà u prucessu apache httpd, fighjate l'infurmazioni di u cuntu à u latu più à sinistra di u risultatu restituitu, è dopu editate u fugliale sudoers per aghjunghje l'autorizazione à u cuntu apache.
ps aux | grep httpd
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apache ALL=(ALL) NOPASSWD:ALL
Mudificazioni quandu si esegue in modu php-fpm
Quandu si esegue in modu php-fpm, funziona cum'è un prucessu separatu. Cusì truvemu prima u so contu in esecuzione, è dopu eseguimu operazioni d'autorizazione cum'è sopra.
ps aux | grep php-fpm
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
www ALL=(ALL) NOPASSWD:ALL
Verificate chì i cambiamenti entrinu in vigore
Dopu l'operazione sopra, avemu mudificatu l'autorizazione, ma ùn hè ancu entrata in vigore. Avemu bisognu di riavviare u serviziu per fà chì a nostra mudificazione entre in vigore. Secondu a nostra situazione attuale, riavvia l'apache o u serviziu php-fpm. Allora eseguite u cumandimu exec per vede u risultatu restituitu. Se u risultatu restituitu hè uttenutu nurmale, hè successu.
exec('sudo dmidecode -s system-serial-number', $result);
var_dump($result);