Ҳалли 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);