इस तरह का एक मुद्दा आपके द्वारा उपयोग किए जाने वाले ओएस पर निर्भर हो सकता है और यह कैसे कॉन्फ़िगर किया गया है। कुछ लिनक्स डिस्ट्रोस (मुख्य रूप से आरएचईएल जैसे सेंटोस या फेडोरा पर आधारित) डिफ़ॉल्ट रूप से सक्रिय किए गए SELinux के साथ आते हैं। यह जाँच की जा सकती है, और अस्थायी रूप से बदल दिया जा सकता है, निम्न आदेशों के साथ:
root@ls:~# /usr/sbin/getenforce
Enforcing
root@ls:~# /usr/sbin/setenforce Permissive
root@ls:~# /usr/sbin/getenforce
Permissive
आपके पास वर्तमान कॉन्फ़िगरेशन पर अधिक पूर्ण दृश्य भी हो सकता है:
root@ls:~# /usr/sbin/sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
/etc/selinux/config
फ़ाइल को संपादित करके और SELINUX
चर को permissive
या पर सेट करके इस परिवर्तन को स्थायी किया जा सकता है disabled
।
लेकिन, इस तरह के मुद्दे को हल करने का सही तरीका , यदि आप वास्तव में इस स्थिति में हैं, तो /var/log/audit/audit.log
लॉग फ़ाइल की जांच करना है । इसमें SELinux नियमों से संबंधित सभी घटनाएँ होंगी। तब आप शायद अपनी स्क्रिप्ट को सही संदर्भ दे सकते हैं, अर्थात अपाचे / php उपयोगकर्ता द्वारा चलाने के लिए अधिकृत किया जा रहा है। SELinux सुरक्षा प्रसंग की जाँच ls -Z
निम्न के साथ की जाती है :
root@ls:~# ls -alZ /var/www/cgi-bin/
drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t .
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t ..
यह प्रत्येक फ़ाइल / निर्देशिका के उपयोगकर्ता, भूमिका और प्रकार को सूचीबद्ध करता है। यहाँ httpd_sys_script_exec_t
प्रकार cgi निर्देशिका में फ़ाइलों को httpd द्वारा निष्पादित करने की अनुमति देता है। आपकी शेल स्क्रिप्ट में शायद एक ही प्रकार होना चाहिए।
आप कमांड audit.log
को लाइनें भी फीड कर सकते हैं audit2allow
। यह आपको SELinux को खुश करने के लिए आवश्यक परिवर्तनों का उत्पादन करेगा। लेकिन आमतौर पर सुझाए गए परिवर्तनों को SELinux नीति पर ही करने की आवश्यकता होती है जो कि आपके मामले में आपको क्या करना चाहिए (फिर भी, यह आउटपुट क्या चल रहा है, इसके बारे में कुछ सुराग दे सकता है)।
निम्न पृष्ठ एक समान समस्या और इसे हल करने के विभिन्न तरीकों का वर्णन करता है: http://sheltren.com/stop-diseable-selinux
x
फ़ाइल पर अनुमतियाँ ( ) निष्पादित की हैं? क्या आपने स्क्रिप्ट व्याख्याकार को एक शबंग रेखा में निर्दिष्ट किया था?