अपाचे को किसी फ़ाइल तक कैसे पहुंचने दिया जाए लेकिन दूसरों को इसे देखने से रोका जाए?


2

मेरे पास Magento के संस्थापनों के साथ कई फ़ोल्डर हैं।

जैसे

www / magento1 www / magento2

उन सभी फ़ाइलों / फ़ोल्डरों के अंदर रूट: magento1 और रूट: magento2 क्रमशः होते हैं।

मेरे पास सभी फ़ोल्डरों के लिए 3755 परमिट, सभी निर्देशिकाओं के लिए 644 हैं। यह किसी को भी, लेकिन किसी भी फ़ोल्डर या फ़ाइल को लिखने से रोकता है।

फिर मैं फ़ोल्डर / फ़ाइलों के लिए समूह लिखने की अनुमति देवों को जोड़ने के लिए लिखने में सक्षम होना चाहिए। जैसे वे कोर फ़ाइलों को नहीं लिख सकते हैं, लेकिन वे मॉड्यूल / खाल को लिख सकते हैं जो गैर-कोर हैं।

यह सब ठीक है। केवल एक चीज ठीक नहीं है कि मैं नहीं चाहता कि वे magento1 / app / etc / local.xml से mysql डेटाबेस उपयोगकर्ता नाम / पासवर्ड को पढ़ सकें। मैं उन्हें डेटाबेस तक पहुंच नहीं देना चाहता, जहां संवेदनशील जानकारी संग्रहीत है। मैं यह भी नहीं चाहता कि एक बदमाश प्रोग्रामर टेबल का एक गुच्छा हटा दे या आपके पास क्या हो।

लेकिन अपाचे को उसी फ़ाइल तक पहुंच पढ़नी होगी।

यहाँ एक "समाधान" है जो काम नहीं करता है: समूह से पढ़ने की अनुमति निकालें लेकिन उन्हें दूसरों के लिए छोड़ दें। क्यूं कर? क्योंकि यह देवों को उनके ऐप / आदि / local.xml से पढ़ने से रोकता है, लेकिन उन्हें अन्य सभी को पढ़ने की अनुमति देता है।

मैं क्या करूं?


संपादित करें: हाँ, devs = Developers और उनके पास SSH और FTP एक्सेस होगा।

यह वास्तव में सरल है। यदि किसी उपयोगकर्ता द्वारा पढ़ी जा रही फ़ाइल को चिह्नित किया जाता है, तो वे फ़ाइल की सामग्री को देख सकते हैं, इसका उत्तर यह है कि उपयोगकर्ता जो अपाचे को चलाता है वह किसी अन्य उपयोगकर्ता खाते में है। उपयोगकर्ता को अपने समूह में रखें क्योंकि आप भी उस उपयोगकर्ता को रूट के समान अधिकार नहीं देते हैं, लेकिन कुछ मामलों में सरल और सरल रीड एक्सेस है।
Ramhound

जवाबों:


3

यह मानते हुए कि डेबियन के तहत, अपाचे उपयोगकर्ता www-data और group www-data के रूप में चलता है, समाधान है

chown www-data:www-data www/magento1/app/etc/local.xml
chmod 440 www/magento1/app/etc/local.xml

रूट उपयोगकर्ता हमेशा सभी फ़ाइलों को पढ़ और लिख सकता है।


यह मूल रूप से समाधान है जिसका मैंने उपयोग किया है।
Buttle Butkus

उस मामले के बारे में जहां दो उपयोगकर्ताओं को सामान की मेजबानी करने की आवश्यकता होती है और आप उन्हें एक-दूसरे के पासवर्ड नहीं देखना चाहते हैं?
jozxyqk

@jozxyqk उस मामले के लिए जहां "दो उपयोगकर्ताओं को सामान की मेजबानी करने की आवश्यकता होती है और आप नहीं चाहते कि वे एक-दूसरे के सामान को देखें, मैं और अधिक जटिल समाधान के साथ आया हूं। मैं सभी उपयोगकर्ताओं को स्वामी / समूह के रूप में रखता हूँ username, और "दूसरों" को कोई अनुमति न दें, और केवल समूह को पढ़ें / निष्पादित करें। जैसे फ़ाइलों के लिए फ़ोल्डर्स 640 के लिए 750। जो उपयोगकर्ताओं को एक-दूसरे की फ़ाइलों को देखने से रोकता है। फिर मैं अपाचे उपयोगकर्ता को जोड़ता हूं ( www-data, या apache, या जो भी हो) प्रत्येक उपयोगकर्ता के लिए समूह , ताकि अपाचे केवल पढ़ने की पहुंच हो सके। आप समूह लेखन अनुमतियाँ दे सकते हैं जहाँ Apache को उनकी आवश्यकता है (जैसे कि Magento के var फ़ोल्डर)।
Buttle Butkus

@ButtleButkus आह, कि समझ में आता है। यद्यपि यदि अपाचे उपयोगकर्ता की स्क्रिप्ट चलाता है, तो वह स्क्रिप्ट तब दूसरों की फ़ाइलों को देख सकेगी। क्या इसे रोकने का कोई तरीका है? मैंने यहीं पूछा और "निर्देशिका ब्लॉक" को इंगित किया गया था, लेकिन यह पता नहीं लगा सका कि अंतर-उपयोगकर्ता पहुंच को रोकने के लिए उनका उपयोग कैसे किया जाए। यह सुरक्षा को अपाचे और ओएस से दूर स्थानांतरित करता है।
jozxyqk

1
@ButtleButkus धन्यवाद! यह एक उचित समाधान की तरह लगता है। हां, मैं उन सर्वरों पर आया हूं जिनमें मैं php स्क्रिप्ट लिख सकता हूं जो अपाचे उपयोगकर्ता के रूप में चलाई जाती हैं और जिनकी पहुंच होती है। इससे मुझे इस बात में दिलचस्पी हुई कि इसे वास्तव में कैसे स्थापित किया जाना चाहिए। मुझे अभी मिला suEXEC भी।
jozxyqk

0

डेवलपर्स = डेवलपर्स मानकर ...

व्हाट्सएप में यह नहीं बताया गया है कि किस तरह से देव प्रणाली तक पहुंच रहे हैं? एफ़टीपी?

यदि यह केवल ftp एक्सेस है, तो आप संभवतः ftp के माध्यम से / से दिखाते हुए कॉन्फिगर फाइल को बाहर कर सकते हैं।

वैकल्पिक रूप से आप संभवतः कुछ उपयोगकर्ता नाम के तहत अपाचे चला सकते हैं (आमतौर पर यह किसी और के रूप में काम करने के लिए सेटअप होता है, कभी-कभी उपयोगकर्ता के खाते के रूप में)। यदि आप "दूसरों" / "दुनिया" को इसे पढ़ने की अनुमति देते हैं तो हर कोई इसे पढ़ सकता है। तो आप अन्य तरीके से चलते हैं - इसे केवल उपयोगकर्ता के लिए पठनीय बनाते हैं, और उपयोगकर्ता को अपाचे उपयोगकर्ता के स्वामित्व में सेट करते हैं, और पूरी तरह से समूह और अन्य का उपयोग बंद कर देते हैं। इस तरह अपाचे इसे पढ़कर खुश है जबकि कोई अन्य उपयोगकर्ता (रूट को बचा सकता है)। यदि आप एक फ़ाइल पर हस्तक्षेप करना चाहते हैं तो आपको उस उपयोगकर्ता की नकल करने की आवश्यकता होगी। जैसे su - username


आईआईए अपाचे "रूट" के रूप में चल रहा है (जिसे अपेक कॉन्फिग के लिए खराब प्रैक्टिस माना जाता है) फिर डेटाबेस कॉन्फिग फाइल रूट के स्वामित्व में होगी और केवल रूट यूजर (गो-आरएक्सएक्स या 400) के लिए पठनीय होगी। 000 भी सेट करें क्योंकि रूट इसे वैसे भी पढ़ने में सक्षम होगा।
ljgww

कोई अपाचे जड़ के रूप में नहीं चल रहा है। यह अपाचे के रूप में चल रहा है: अपाचे (उपयोगकर्ता: समूह)
Buttle Butkus

फिर अपाचे द्वारा फ़ाइल को पठनीय बनाएं: केवल अपाचे chown apache:apache local.xml और फिर chmod 400 local.xml केवल अपाचे द्वारा पठनीय होना। मैं देख रहा हूँ कि किसी ने पहले ही कहा है। :)
ljgww
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.