2013-02-15 9 views
8

वर्तमान में मैं सभी निर्देशिकाओं और फ़ाइलों को 0777 सेट करता हूं।
हालांकि, मैं दूसरों से पहुंचने से डरता हूं।
लॉग फाइलें और सभी नियंत्रक, मॉडल, विचार, और कॉन्फ़िगरेशन में फ़ाइलें 0777मुझे रेल ऐप के लिए अनुमति कैसे सेट अप करनी चाहिए?

सामान्य रूप से, उन्हें कैसे सेट किया जाना चाहिए?

  • लॉग फ़ाइलें निर्देशिका और उसकी फ़ाइलें
  • नियंत्रक फ़ाइलों
  • मॉडल फ़ाइलें
  • दृश्य fies
  • config निर्देशिका में फ़ाइलों को

उत्तर

12

आप निश्चित रूप से अपनी फ़ाइल के लिए 0777 उपयोग नहीं करना चाहिए अनुमतियाँ। यह आपको आसानी से कमजोरियों के लिए उजागर करता है।

सामान्य में, इस सिद्धांत का पालन करें:

  • फ़ोल्डरों के लिए, 0755 का उपयोग करें, जो rwxr-xr-x के बराबर है। निष्पादन अनुमति फ़ोल्डर सामग्री को देखने की अनुमति देता है।

    खोज/अपने/रेल/dir प्रकार घ -exec chmod 755 {} +

  • निष्पादित स्क्रिप्ट के लिए, यह भी 0755 का उपयोग करें। यह किसी को भी स्क्रिप्ट निष्पादित करने की अनुमति देता है, लेकिन उन्हें परिवर्तन (लिखने) नहीं देता है।

  • अन्य सभी फ़ाइलों के लिए, 0644 का उपयोग करें जो rw-r--r-- के बराबर है। यह सभी को फाइल को पढ़ने के लिए फ़ाइल, फ़ाइल को लिखने के लिए अनुमति देता है, और फ़ाइल को निष्पादित करने के लिए कोई भी नहीं। यह अन्य चीजों के साथ, दुर्भावनापूर्ण स्क्रिप्ट अपलोड और निष्पादित होने से रोकता है।

    खोज/अपने/रेल/dir प्रकार च -exec chmod 644 {} +

  • वैकल्पिक रूप से, पासवर्ड युक्त फ़ाइलों को आप पर अधिक प्रतिबंधात्मक अनुमति, विशेष रूप से config/database.yml या किसी मेल जैसी चीजों के लिए पासवर्ड युक्त फ़ाइलों विचार कर सकते हैं सेवाएं (मैंडिल, प्रेषक, पोस्टमार्क), अमेज़ॅन एस 3 बाल्टी, या रेडिस कनेक्शन। इन फ़ाइलों के लिए आप 0600 का उपयोग कर सकते हैं।

उत्पादन वातावरण में, आपके रेल ऐप को उसी उपयोगकर्ता (रूट नहीं) के रूप में चलाना चाहिए जो इन सभी फ़ाइलों का मालिक है। यह passenger, unicorn का उपयोग कर, या localhost:3000 जैसे बंदरगाह पर स्थानीय उपयोगकर्ता के रूप में मोनेल या वेब्रिक जैसे वेब सर्वर चलाकर, और localhost:3000 पर अपाचे या Nginx रिवर्स प्रॉक्सी होने के द्वारा आसानी से पूरा किया जाता है।

+0

विस्तृत स्पष्टीकरण के लिए धन्यवाद। यही वह है जिसे मैंने कभी नहीं सोचा था। धन्यवाद फिर से :) – HUSTEN

+0

कृपया मुझे इन मामलों को बता सकते हैं? 'नियंत्रक/example_controller.rb',' मॉडल/example.rb', 'विचार/नियंत्रक/index.html.erb',' config/database.yml', 'config/वातावरण/production.rb',' config/path .rb', और 'tmp' निर्देशिका – HUSTEN

+0

के अंतर्गत वाली फ़ाइलें निर्देशिकाओं में' 0755' और फ़ाइलों को '0644' लागू करें। – Benjamin

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

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