በሊኑክስ ላይ የማስፈጸሚያ ትዕዛዙን ለመፈፀም ፈቃድ ለሌለው ለ 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);