PHP-ren irtenbidea Linux-en exec komandoa exekutatzeko baimenik ez izatea

Lotutako erreferentzia ofizialak

PHP exec Linux sudoers file Sudo Commands

Aldaketak 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);