በሊኑክስ ላይ የማስፈጸሚያ ትዕዛዙን ለመፈፀም ፈቃድ ለሌለው ለ PHP መፍትሄ

ተዛማጅ ኦፊሴላዊ ማጣቀሻዎች

PHP exec Linux sudoers file Sudo Commands

በ fastcgi ሞድ ውስጥ ሲሰሩ ማስተካከያዎች

ፒኤችፒ በ Fastcgi ሞድ ውስጥ በሚሠራበት ጊዜ ፈቃዶቹ ከአስተናጋጅ ፕሮግራሙ የተወረሱ ናቸው። ለማብራራት Apache ን እንደ ምሳሌ እንወስዳለን ፡፡ በመጀመሪያ ፣ Apache የሚሄድበትን መለያ መፈለግ አለብን ፣ ከዚያ የ / etc / sudoers ፋይልን ለማርትዕ ቫይ ወይም ቪም በመጠቀም እና የሚከተለውን የማጣቀሻ ምሳሌ በፋይሉ ላይ ማከል ያስፈልገናል ፡፡ በሚከተለው ይዘት ውስጥ በመጀመሪያ የአፓስን ሂደት httpd ለማግኘት የ “ps” ትዕዛዙን ይጠቀሙ ፣ ከተመለሰው ውጤት በስተግራ በኩል ያለውን የመለያ መረጃ ይመልከቱ እና ከዚያ በአፓቼ መለያ ላይ ፈቃድ ለማከል የሱዶርስ ፋይልን ያርትዑ ፡፡

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