લિનક્સ પર એક્ઝેકટ આદેશ ચલાવવાની પરવાનગી ન હોવાના PHP નો ઉકેલો

સંબંધિત સત્તાવાર સંદર્ભો

PHP exec Linux sudoers file Sudo Commands

ફાસ્ટકગી મોડમાં ચાલતી વખતે ફેરફારો

જ્યારે PHP, ફાસ્ટકિગિ મોડમાં ચાલી રહ્યું છે, ત્યારે તેની પરવાનગી તેના હોસ્ટ પ્રોગ્રામથી વારસામાં પ્રાપ્ત થાય છે. અમે સમજાવવા માટે ઉદાહરણ તરીકે અપાચે લઈએ છીએ. સૌ પ્રથમ, અમારે તે એકાઉન્ટ શોધવાની જરૂર છે કે જે હેઠળ અપાચે ચાલે છે, પછી / etc / sudoers ફાઇલને સંપાદિત કરવા માટે vi અથવા vim નો ઉપયોગ કરો, અને ફાઇલમાં નીચેના સંદર્ભ ઉદાહરણ ઉમેરો. નીચેની સામગ્રીમાં, પ્રથમ અપાચે પ્રક્રિયા httpd શોધવા માટે ps કમાન્ડનો ઉપયોગ કરો, પાછલા પરિણામની ડાબી બાજુની એકાઉન્ટ માહિતી જુઓ અને પછી અપાચે એકાઉન્ટમાં અધિકૃતતા ઉમેરવા માટે sudoers ફાઇલમાં ફેરફાર કરો.

            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
        

ચકાસો કે ફેરફારો પ્રભાવમાં છે

ઉપરોક્ત કામગીરી પછી, અમે અધિકૃતતામાં ફેરફાર કર્યા છે, પરંતુ તે હજી સુધી અસરકારક બન્યું નથી, અમારા ફેરફારને અસરકારક બનાવવા માટે અમને સેવાને ફરીથી પ્રારંભ કરવાની જરૂર છે. અમારી વાસ્તવિક પરિસ્થિતિ અનુસાર, અપાચે અથવા php-fpm સેવા ફરીથી પ્રારંભ કરો. પછી રીટર્ન થયેલ પરિણામ જોવા માટે એક્ઝેકટ કમાન્ડ એક્ઝીક્યુટ કરો.જો પરત પરિણામ સામાન્ય રીતે મેળવવામાં આવે તો તે સફળ છે.

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