Ҳалли PHP надоштани иҷозати иҷрои фармони exec дар Linux

Истинодҳои расмии марбута

PHP exec Linux sudoers file Sudo Commands

Тағирот ҳангоми кор дар режими fastcgi

Вақте ки PHP дар режими fastcgi кор мекунад, иҷозатномаҳои он аз барномаи ҳости он мерос мондаанд. Мо apache -ро барои мисол мисол мегирем. Аввалан, мо бояд ҳисоберо пайдо кунем, ки дар зери он apache кор мекунад ва сипас vi ё vim -ро барои таҳрири файли / etc / sudoers истифода баред ва мисоли истиноди зеринро ба файл илова кунед. Дар мундариҷаи зерин, аввал фармони ps -ро барои дарёфти раванди apache httpd истифода баред, маълумоти ҳисобро дар тарафи чапи натиҷаи баргардонидашуда бинед ва пас файли sudoers -ро таҳрир кунед, то ба ҳисоби apache иҷозат илова кунед.

            ps aux | grep httpd
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apache ALL=(ALL) NOPASSWD:ALL
        

Тағирот ҳангоми кор дар ҳолати php-fpm

Ҳангоми дар режими php-fpm кор кардан, он ҳамчун раванди алоҳида кор мекунад. Ҳамин тавр, мо аввал ҳисоби корбарии онро пайдо мекунем ва пас амалиётҳои ваколатдорро тавре ки дар боло анҷом медиҳем, иҷро мекунем.

            ps aux | grep php-fpm
vim /etc/sudoers
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
www ALL=(ALL) NOPASSWD:ALL
        

Тасдиқ кунед, ки тағиротҳо эътибор пайдо мекунанд

Пас аз амалиётҳои дар боло овардашуда, мо иҷозатномаро тағир додем, аммо он то ҳол мавриди амал қарор нагирифтааст. Мувофиқи вазъияти воқеии мо, хидмати apache ё php-fpm -ро аз нав оғоз кунед. Пас фармони exec -ро иҷро кунед, то натиҷаи баргардонидашударо бинед.Агар натиҷаи баргардиш одатан ба даст оварда шавад, он муваффақ аст.

            exec('sudo dmidecode -s system-serial-number', $result);
var_dump($result);