मेरा सर्वर व्यवस्थापक चाहता है कि मैं किसी निर्देशिका पर सार्वजनिक लेखन अनुमति सेट करूं


9

मैं वेब विकास के लिए अपेक्षाकृत नया हूं, इसलिए कृपया धैर्य रखें।

मैं मुख्य रूप से एक iPhone डेवलपर हूं, लेकिन हाल ही में साझा होस्टिंग का उपयोग करके किसी और के लिए एक साइट बनाई है। अनुमति के बारे में सोचने के बिना, मैं उस साइट पर PHP में फ़ाइलों को लिख सकता था।

मैं एक नए ऐप के लिए एक वेब सेवा को तैनात करने की प्रक्रिया में हूं, जो मैं बना रहा हूं, लेकिन यह वास्तव में सुचारू रूप से नहीं चल रहा है। यहां सबसे महत्वपूर्ण अंतर यह है कि मैं किसी और के सर्वर का उपयोग कर रहा हूं, और बस एफ़टीपी / डीबी एक्सेस है।

मूल रूप से, मेरे पास PHP फ़ाइलों का भार है जो मेरे CMS को बनाते हैं, जैसे:

mysite.com/admin/manage_news.php
mysite.com/admin/manage_events.php

वे स्क्रिप्ट तब डेटाबेस, या फ़ाइलों को संपादित करते हैं। वे डीबी फाइन के साथ बातचीत कर सकते हैं, हालांकि, मेरी स्क्रिप्ट्स फाइल सिस्टम पर नहीं लिख सकती हैं। उदाहरण के लिए, वे निम्नलिखित फ़ाइलों को लिखने का प्रयास कर सकते हैं:

mysite.com/data/img/event_1.png
mysite.com/data/somefile.txt

यह मेरे MAMP इनस्टॉल (स्थानीय रूप से) पर ठीक काम करता है, लेकिन एक बार सर्वर पर तैनात होने के बाद, PHP ने त्रुटियों को हर बार उकसाया कि एक लेखन का प्रयास किया गया ... कुछ इस तरह:

लिखने के लिए फ़ाइल "../ata/img/someimage.png" नहीं खोल सका।

इसलिए मैंने उस व्यक्ति को ईमेल किया जो सर्वर चला रहा है, और वह यह कहते हुए वापस आया:

क्या यह सार्वजनिक अनुमति से काम करता है? (777)

और, यह किया - लेकिन मैं सार्वजनिक अनुमतियों का उपयोग करने के साथ बहुत सतर्क था, इसलिए इसे फिर से सीधे अक्षम कर दिया। मैंने उसे यह कहते हुए ईमेल किया कि "मैं अपनी PHP स्क्रिप्ट को मानक उपयोगकर्ता अनुमतियों का उपयोग करके कैसे लिख सकता हूँ", और उसने कहा:

इसे सार्वजनिक रूप से छोड़ दें, यह ठीक रहेगा

मुझे लगता है कि यह डोमेन रिज़ॉल्यूशन में कहीं न कहीं एक आईपी संघर्ष है, लेकिन मैं इसके बारे में चिंतित नहीं हूं।

मैंने फिर उसे यह कहते हुए ईमेल किया कि "निश्चित रूप से यह असुरक्षित है" या उन पंक्तियों के साथ कुछ, और उसने निम्नलिखित के साथ उत्तर दिया:

वास्तविकता यह है कि लाखों वेबसाइट हैं, जिनमें से कई का प्रबंधन मैं करता हूं कि विभिन्न फ़ोल्डरों पर 777 हैं, यह सिर्फ जीवन का एक तरीका है।

क्या कोई मुझे उस समाधान का कुछ विचार दे सकता है जो मैं उसे दे सकता हूं? या मैं 777 का उपयोग करने से बचने के लिए क्या कर सकता हूं? मुझे वास्तव में अपनी साइट / सेवा के किसी भी फ़ोल्डर का विचार सार्वजनिक रूप से लिखने योग्य नहीं है।

मैं आपकी सलाह की बहुत सराहना करूंगा क्योंकि मैं वेब सर्वर के बारे में बहुत कम जानता हूं।


12
इस आदमी से दूर भाग जाओ और पीछे मत देखो।
user9517

वास्तव में एक विकल्प नहीं है ... स्वेन के जवाब पर टिप्पणियों को देखें ...
एलेक्स कोपलान

जवाबों:


13

चलो इसे तोड़ दो :

आपको निर्देशिका को पढ़ने, निष्पादित करने और निर्देशिका पर लिखने के लिए स्क्रिप्ट चलाने वाले उपयोगकर्ता की आवश्यकता है, इसलिए यह होना चाहिए:

7 = (आर) ead, (डब्ल्यू) संस्कार, ई (एक्स) एक्यूट

एक ही समूह से संबंधित अन्य उपयोगकर्ता निर्देशिका के भीतर php फ़ाइल को निष्पादित करने में सक्षम होना चाहिए, लेकिन इसे (स्पष्ट कारणों के लिए) नहीं लिखें; वे जरूरी नहीं कि PHP फ़ाइलों को पढ़ने की जरूरत है। इसलिए, हमें बस निष्पादन की अनुमति प्रदान करने की आवश्यकता है:

1 = ई (एक्स) एक्यूट

जनता के लिए ही। वास्तव में, यह आपको बाहरी उपयोगकर्ताओं के लिए आवश्यक है, जिन्हें php और स्थिर फ़ाइलों को देखने की आवश्यकता है:

1 = ई (एक्स) एक्यूट

तो नंगे न्यूनतम होना चाहिए:

711

मैंने अपने स्वयं के कॉन्फ़िगरेशन के साथ उपरोक्त सेटिंग्स की पुष्टि की, इसलिए इसे काम करना चाहिए; हालाँकि, यह डिफ़ॉल्ट वेब उपयोगकर्ता के अंतर्गत है। यदि आप www के अलावा किसी अन्य लॉगिन के साथ अपलोड कर रहे हैं, तो फाइलें और निर्देशिका शायद एक अलग उपयोगकर्ता के अधीन होंगी। उस स्थिति में, डिफ़ॉल्ट वेब उपयोगकर्ता आपके द्वारा स्वामित्व वाली फ़ाइलों को पढ़ने या लिखने में सक्षम नहीं हो सकता है। उस बिंदु पर, आपको संभवतः अपने समूह में डिफ़ॉल्ट वेब उपयोगकर्ता को जोड़ना होगा (sysadmin को ऐसा करना होगा) और फिर समूह से संबंधित उपयोगकर्ताओं को अनुमतियाँ पढ़ना, लिखना और निष्पादित करना होगा:

771

और वह शायद काम करेगा। या तो, या sysadmin उन फ़ाइलों के उपयोगकर्ता और समूह स्वामित्व को डिफ़ॉल्ट वेब सर्वर उपयोगकर्ता में बदल देता है (लेकिन अनुमतियाँ नहीं!)। यदि वह अभी भी काम नहीं करता है, तो अनुमतियों का एक नमूना आउटपुट ("निर्देशिका में एलएस-बीला" जैसा कुछ) हमें इस समस्या का निवारण करने में मदद करेगा। उन्होंने कहा, जब तक आपको केवल जनता को निष्पादन की अनुमति देनी होगी ( या "अन्य"), आपको सुरक्षा दृष्टिकोण से ठीक होना चाहिए।


2
काश मैं दो बार उत्थान कर पाता।
वेस्ले

समस्या वास्तव में यह है कि वेबसाइट को अनुमतियों के बजाय स्वयं की संरचना के भीतर फ़ाइलों को नहीं लिखना चाहिए।
जेम्सरैन

आप सही हे। डेटा के आधार पर, आप शायद जनता के वेबरूट के बाहर एक फ़ाइल पर लिखना चाहेंगे।
रिलिंडो

यहां मैं एक /dataफ़ोल्डर में लिख रहा हूं - इस फ़ोल्डर में PHP स्क्रिप्ट हैं जो मेरी JSON वेब सेवा को बनाती हैं, और सामग्री के लिए उपयोग की जाने वाली छवियों का एक गुच्छा वेब सेवा (एक /data/imgफ़ोल्डर में) से
गुजरता है

तो छवियों को सार्वजनिक होने की आवश्यकता है, फिर? इससे चीजें स्पष्ट हुईं।
Rilindo

18
Leave it as public, it'll be fine

I reckon it's an ip conflict somewhere in the domain resolution, 
but I'm not worried about it.

यह आदमी एक बेवकूफ है और यह पूरी बकवास है। एक्सेस अधिकारों का आईपी ऐड्रेस या डोमेन रिज़ॉल्यूशन से कोई लेना-देना नहीं है, वह केवल शब्दों को छोड़ रहा है।

इस "व्यवस्थापक" की गुणवत्ता को देखते हुए, मैं आपकी साइट को कहीं और होस्ट करने की सिफारिश करूंगा क्योंकि यह बहुत संभावना है कि साइट को बहुत खराब और असुरक्षित प्रशासित किया गया है। बस 777कुछ पर अनुमतियाँ डाल रहा है ताकि यह काम करता है एक निश्चित संकेत है कि वह समझ नहीं पा रहा है कि वह क्या कर रहा है।

वास्तव में कौन से एक्सेस अधिकार आवश्यक हैं यह इस बात पर निर्भर करता है कि सिस्टम किस तरह से उपयोग और कॉन्फ़िगर किया गया है और यह बिना किसी को बताए आपको बता देना कठिन है।


धन्यवाद - मेरे विचार बिल्कुल अनुमतियों के बारे में - मेरे पास वास्तव में इसे कहीं और होस्ट करने का विकल्प नहीं है क्योंकि मैं जिस कंपनी के लिए विकास कर रहा हूं वह इसके लिए भुगतान नहीं करेगा, और मुझे इस आदमी की सिफारिश की और कहा कि वे उसे प्राप्त करेंगे इसे मुफ्त में करें - जो मैं बता सकता हूं कि मैं उसके एक वर्चुअल सर्वर को बंद कर रहा हूं। तो यह सामान्य रूप से कैसे काम करता है, एक PHP स्क्रिप्ट "उपयोगकर्ता" के रूप में कैसे चल सकती है और इसलिए साइट पर कुछ भी लिखने में सक्षम हो सकता है?
एलेक्स कोपलान 19

खैर, मैं उन्हें इस बारे में सूचित करूंगा कि उन्हें "मुफ्त में" क्या मिलेगा। मेरे पास किसी भी साझा होस्टिंग के साथ बहुत अनुभव नहीं है, इसलिए मैं उस पर टिप्पणी नहीं कर सकता। मेरी साइटें सभी डेबियन वेब सर्वरों और फ़ोल्डरों को चलाती हैं, जिनके लिए उपयुक्त होने की आवश्यकता होती है , वे अनुमतियों के www-dataसाथ होंगे 700, लेकिन यह आपके मामले में काम नहीं करेगा।
स्वेन

मुझे लगता है कि वे उसे अपनी मुख्य साइट के लिए भुगतान कर रहे हैं और इसीलिए - यदि यह किसी भी सर्वर त्रुटि पृष्ठ के निचले भाग में कोई मदद करता है, तो यह कहता हैApache/2.2.9 (Debian) PHP/5.2.6-1
एलेक्स कोपलान

यह भी vps साझा नहीं है
एलेक्स कोपलान

2
खैर, मैं यह पता लगाने की कोशिश करता हूं कि आपकी फ़ाइलों को किन अनुमतियों और मालिकों को सर्वर में स्थानांतरित किया जा सकता है। यदि यह एक उपयोगकर्ता है जो कम से कम www-dataसमूह का सदस्य नहीं है , तो आपको स्थानांतरण के बाद उपयोगकर्ताओं / समूहों को बदलने की आवश्यकता है या वास्तव में 777अनुमति का उपयोग करें । लेकिन यह व्यर्थ है, हम आपकी इस तरह से मदद नहीं कर सकते।
स्वेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.