PHP-ga Linuxda exec buyrug'ini bajarishga ruxsat berilmagan echim

Tegishli rasmiy ma'lumotnomalar

PHP exec Linux sudoers file Sudo Commands

Fastcgi rejimida ishlashda o'zgartirishlar

PHP fastcgi rejimida ishlayotganda, uning ruxsatnomalari xost dasturidan meros qilib olinadi. Tushuntirish uchun biz apacheni misol qilib olamiz. Birinchidan, biz apache ishlaydigan hisobni topib, / etc / sudoers faylini tahrirlash uchun vi yoki vim-dan foydalaning va faylga quyidagi mos yozuvlar misolini qo'shing. Quyidagi tarkibda avval ps buyrug'idan foydalanib apache jarayonini toping httpd, qaytarilgan natijaning chap tomonidagi hisob qaydnomasi ma'lumotlariga qarang va keyin apache hisobiga avtorizatsiya qo'shish uchun sudoers faylini tahrirlang.

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

Php-fpm rejimida ishlayotganda o'zgartirishlar

Php-fpm rejimida ishlayotganda, u alohida jarayon sifatida ishlaydi. Shunday qilib, biz avval uning ishlaydigan hisobini topamiz, so'ngra yuqoridagi kabi avtorizatsiya operatsiyalarini bajaramiz.

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

O'zgarishlar kuchga kirishini tasdiqlang

Yuqoridagi operatsiyalardan so'ng biz avtorizatsiyani o'zgartirdik, ammo u hali kuchga kirmagan. O'zgartirishimiz kuchga kirishi uchun xizmatni qayta boshlashimiz kerak. Bizning haqiqiy holatimizga ko'ra apache yoki php-fpm xizmatini qayta yoqing. Keyin qaytarilgan natijani ko'rish uchun exec buyrug'ini bajaring, agar qaytarilgan natija odatda olingan bo'lsa, u muvaffaqiyatli bo'ladi.

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