लिनक्सवर एक्जिक्यूट कमांड कार्यान्वित करण्याची परवानगी नसलेल्या पीएचपीला सोल्यूशन

संबंधित अधिकृत संदर्भ

PHP exec Linux sudoers file Sudo Commands

फास्टगी मोडमध्ये चालत असताना बदल

जेव्हा पीएचपी फास्टगी मोडमध्ये चालत असते, तेव्हा त्याच्या परवानग्या त्या होस्ट प्रोग्रामकडून वारशाने प्राप्त केल्या जातात. आम्ही स्पष्ट करण्यासाठी उदाहरण म्हणून अपाचे घेतो. प्रथम, आम्हाला अपाचे ज्या खात्याखाली चालत आहे ते शोधणे आवश्यक आहे, आणि नंतर vi किंवा vim वापरुन / etc / sudoers फाईल संपादित करण्यासाठी आणि फाइलमध्ये खालील संदर्भ उदाहरण जोडा. खालील सामग्रीमध्ये, प्रथम अपाचे प्रक्रिया httpd शोधण्यासाठी ps कमांडचा वापर करा, परत आलेल्या निकालाच्या डावीकडील खाते माहिती पहा आणि नंतर अपाचे खात्यात अधिकृतता जोडण्यासाठी sudoers फाईल संपादित करा.

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

पीएचपी-एफपीएम मोडमध्ये चालू असताना सुधारणे

पीएचपी-एफपीएम मोडमध्ये चालत असताना, ती स्वतंत्र प्रक्रिया म्हणून चालते. म्हणून आम्ही प्रथम त्याचे चालू खाते शोधतो आणि नंतर वरीलप्रमाणे अधिकृतता ऑपरेशन करतो.

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