2010-02-07 16 views
8

मैं एक शैंप एक्सेस के साथ एक लैंप स्टैक पर साझा होस्टिंग पैकेज पर हूं।403 वेब रूट में सिम्लिंक पर निषिद्ध

मैं PHP के symlink() फ़ंक्शन का उपयोग करके सिम्लिंक बना सकता हूं।

मान लीजिए कि अपने वेब जड़ /home/www/user1/public

है चलो कहते हैं कि मैं एक असली निर्देशिका /home/www/user1/public/real_dir

नामित किया है और मैं /home/www/user1/public/fake_dir नाम के एक सिमलिंक real_dir

की ओर इशारा करते बनाने मैं एक 403 निषिद्ध क्यों मिलेगा चलो चलोwww.mydomain.com/fake_dir तक पहुंचने का प्रयास करते समय, लेकिन www.mydomain.com/real_dir तक पहुंचने का प्रयास करते समय नहीं?

यह अधिकार समस्या नहीं होनी चाहिए क्योंकि जब मैं PHP में फ़ाइल बनाता हूं, तो मैं इसे ठीक से एक्सेस कर सकता हूं।

मैंने FollowSymlinks को बंद कर दिया। Htaccess (यह चालू था), लेकिन कोई किस्मत नहीं।

क्या यह FollowSymlinks को .htaccess फ़ाइल में ओवरराइट करने योग्य नहीं माना जा सकता है? या अपाचे में सिम्लिंक के साथ काम करते समय जागरूक होने के लिए कुछ और है?

उत्तर

4

अपाचे को फाइल सिस्टम पर निर्देशिका तक पहुंच की अनुमति देने के लिए कॉन्फ़िगर किया जाना है। यह < निर्देशिका> अपाचे कॉन्फ़िगरेशन फ़ाइलों (httpd.conf) में निर्देश डालने के द्वारा सिस्टम व्यवस्थापक द्वारा किया जाना है।

चूंकि असली निर्देशिका वेब रूट के अंदर है, यह सुलभ होनी चाहिए, लेकिन निर्देशिका के लिए FollowSymLinks सक्षम नहीं हो सकता है - इसे < निर्देशिका> निर्देश में भी जोड़ा जाना है।

देखें http://httpd.apache.org/docs/2.0/mod/core.html#directory

+0

तो यदि यह उस तरह से कॉन्फ़िगर नहीं किया गया है, और 'FollowSymlinks' बंद है, तो सिमलिंक तक पहुंचने का प्रयास कर रहा है (भले ही लक्ष्य वेब रूट में भी है) 403 उठाएगा? क्या यही कारण है? –

+0

क्षमा करें, मैंने अभी आपके प्रश्न को फिर से पढ़ा है और देखा है कि असली निर्देशिका वेब रूट में है, इसलिए यह पहुंच योग्य होगी, हालांकि FollowSymLinks सक्षम नहीं हो सकता है। मैंने इसे प्रतिबिंबित करने के लिए अपना उत्तर अपडेट कर दिया है। – Sam

+0

-1 यह अभी भी ओपी के प्रश्न का उत्तर नहीं है। ओपी 'FollowSymlinks' विकल्प के बारे में पूरी तरह से अवगत लगता है। लेकिन वह पूछता है कि इसे '.htaccess' से सेट करना httpd.conf से निकाला जा सकता है। –

0

यह संभव SELinux सुरक्षा मुद्दा है।

बिल्ली/सेलिनक्स/ लागू करें यदि मान 1 है, तो इसे 0 पर सेट करें, फिर अपाचे को पुनरारंभ करें।

+0

ओपी के पास खोल का उपयोग नहीं है, जैसा कि उनके प्रश्न की पहली पंक्ति में बताया गया है। –

संबंधित मुद्दे