Linux-da exec komutunu icra etmək icazəsi olmayan PHP-nin həlli

Əlaqədar rəsmi istinadlar

PHP exec Linux sudoers file Sudo Commands

Fastcgi rejimində işləyərkən dəyişikliklər

PHP fastcgi rejimində işləyərkən, icazə proqramları ana proqramdan miras qalır. Apache'yi izah etmək üçün bir nümunə götürürük. Əvvəlcə apache-nin işlədiyi hesabı tapmalı və sonra / etc / sudoers faylını düzəltmək üçün vi və ya vim istifadə etməli və aşağıdakı istinad nümunəsini fayla əlavə etməliyik. Aşağıdakı məzmunda əvvəlcə apa prosesi httpd-i tapmaq üçün ps əmrini istifadə edin, qaytarılmış nəticənin sol tərəfindəki hesab məlumatlarına baxın və sonra apa hesabına icazə əlavə etmək üçün sudoers faylını düzəldin.

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

Php-fpm rejimində işləyərkən dəyişikliklər

Php-fpm rejimində işləyərkən ayrı bir proses kimi işləyir. Beləliklə, əvvəlcə onun işləyən hesabını tapırıq və sonra yuxarıdakı kimi avtorizasiya əməliyyatları aparırıq.

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

Dəyişikliklərin qüvvəyə mindiyini yoxlayın

Yuxarıda göstərilən əməliyyatlardan sonra biz icazəni dəyişdirdik, lakin hələ qüvvəyə minməyib. Dəyişikliyin qüvvəyə minməsi üçün xidməti yenidən başlatmalıyıq. Həqiqi vəziyyətimizə görə apache və ya php-fpm xidmətini yenidən başladın. Sonra qaytarılmış nəticəni görmək üçün exec əmrini yerinə yetirin, əgər qaytarılmış nəticə normal alınırsa, uğurlu olur.

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