आप निश्चित रूप से अपनी फ़ाइल के लिए 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 रिवर्स प्रॉक्सी होने के द्वारा आसानी से पूरा किया जाता है।
विस्तृत स्पष्टीकरण के लिए धन्यवाद। यही वह है जिसे मैंने कभी नहीं सोचा था। धन्यवाद फिर से :) – HUSTEN
कृपया मुझे इन मामलों को बता सकते हैं? 'नियंत्रक/example_controller.rb',' मॉडल/example.rb', 'विचार/नियंत्रक/index.html.erb',' config/database.yml', 'config/वातावरण/production.rb',' config/path .rb', और 'tmp' निर्देशिका – HUSTEN
के अंतर्गत वाली फ़ाइलें निर्देशिकाओं में' 0755' और फ़ाइलों को '0644' लागू करें। – Benjamin