PHP-ren irtenbidea Linux-en exec komandoa exekutatzeko baimenik ez izatea
Lotutako erreferentzia ofizialak
PHP exec Linux sudoers file Sudo CommandsAldaketak fastcgi moduan exekutatzean
PHP fastcgi moduan exekutatzen ari denean, bere baimenak ostalari-programatik heredatzen dira. Apache adibide gisa hartzen dugu azaltzeko. Lehenik eta behin, apache exekutatzen ari den kontua aurkitu behar dugu eta, ondoren, vi edo vim erabili / etc / sudoers fitxategia editatzeko, eta honako erreferentzia adibidea gehitu fitxategian. Ondorengo edukian, erabili ps komandoa http apache prozesua aurkitzeko, begiratu itzultzen den emaitzaren ezkerreko aldean dagoen kontuaren informazioa eta, ondoren, editatu sudoers fitxategia apache kontuan baimena gehitzeko.
ps aux | grep httpd
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apache ALL=(ALL) NOPASSWD:ALL
Aldaketak php-fpm moduan exekutatzean
Php-fpm moduan exekutatzen denean, prozesu bereizi gisa exekutatzen da. Beraz, lehenik martxan dugun kontua aurkitzen dugu, eta, ondoren, goiko moduan baimentzeko eragiketak egiten ditugu.
ps aux | grep php-fpm
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
www ALL=(ALL) NOPASSWD:ALL
Egiaztatu aldaketek eragina dutela
Aurreko eragiketen ondoren, baimena aldatu dugu, baina oraindik ez da indarrean jarri. Zerbitzua berrabiarazi behar dugu gure aldaketak eragina izan dezan. Gure benetako egoeraren arabera, berrabiarazi apache edo php-fpm zerbitzua. Ondoren, exekutatu exec komandoa itzulitako emaitza ikusteko. Itzulitako emaitza normalean lortzen bada, arrakastatsua da.
exec('sudo dmidecode -s system-serial-number', $result);
var_dump($result);