मेरे पास एक php स्क्रिप्ट है जिसे डेटाबेस से कनेक्ट करने की आवश्यकता है। डेटाबेस के लिए प्रमाण पत्र किसी अन्य PHP स्क्रिप्ट में संग्रहीत हैं।यूनिक्स अनुमतियां, बनाम बनाम निष्पादित करें (PHP संदर्भ)
यदि मैं क्रेडेंशियल्स फ़ाइल के लिए 661 पर अनुमतियां सेट करता हूं ताकि जनता को अनुमति निष्पादित हो लेकिन अनुमति न पढ़ सके, क्या यह मुख्य स्क्रिप्ट को क्रेडेंशियल्स तक पहुंचने और डीबी से कनेक्ट करने की अनुमति देता है जबकि किसी को उपयोगकर्ता खाते से रोकता है प्रमाण पत्र फ़ाइल की सामग्री को देखने से सर्वर?
मुझे लगता है कि मैं पढ़ने और निष्पादित के बीच भेद के रूप में उलझन में हूं। क्या एक php स्क्रिप्ट (www या कुछ समान के रूप में चल रही है) को एक और php स्क्रिप्ट शामिल करने और अंदर किसी भी सामग्री का उपयोग करने के लिए पढ़ने की अनुमति की आवश्यकता है? या क्या इसे सिर्फ निष्पादन की आवश्यकता है? क्या पढ़ने की अनुमति पूरी तरह से निष्पादन अनुमति देती है?
उप-प्रश्न: यदि मैंने अपनी सभी स्क्रिप्ट को केवल निष्पादित अनुमति के लिए सेट किया है और पढ़ा नहीं है, तो क्या मुझे कोई नुकसान होने की उम्मीद है? यह माना जा रहा है कि मैं किसी भी फाइल को छोड़ दूंगा जिसे मुझे पढ़ने के लिए सेट की गई स्पष्ट पठन अनुमति (डेटा फाइल) की आवश्यकता है।
ध्यान दें कि यदि अन्य उपयोगकर्ताओं के पास वेब सर्वर के माध्यम से अपना स्वयं का PHP कोड चलाने की पहुंच है तो यह उन्हें रोक नहीं पाएगा। उस स्थिति में शायद open_basedir या एक समाधान देखें जो आपको अलग-अलग उपयोगकर्ताओं के रूप में अलग-अलग vhosts/ऐप्स चलाने की अनुमति देता है। – oops
हाँ, नज़दीकी निरीक्षण पर, मैंने पाया कि www उस निर्देशिका के लिए समूह का सदस्य था जिस पर मैं अपना भ्रम लगा रहा था। मैं इसे हैक करने की कोशिश नहीं कर रहा था, मैं सिर्फ उन चीजों का अनुकरण करना चाहता था जो उन्होंने किया था लेकिन बिना मिरर के। – Anthony