एक विशिष्ट साझा लिनक्स वेब होस्ट पर अनुमतियाँ


5

मैं एक विशिष्ट साझा लिनक्स वेब होस्टिंग खाते पर फ़ाइल अनुमतियों को समझने की कोशिश कर रहा हूं। मुझे पता है कि किसी फ़ाइल या निर्देशिका के OWNER GROUP और PUBLIC संस्थाओं के लिए rwx अनुमतियां कैसे सेट करें। मेरे लिए बहुत स्पष्ट नहीं है, आमतौर पर एक्सेस अनुमतियों का नक्शा कहां होगा? मैं अनुमान लगा रहा हूं कि:

USER अनुमतियाँ क्या प्रभावित करती हैं ... उह ... निश्चित नहीं है कि
समूह अनुमतियाँ प्रभावित करेंगी कि सर्वर पर चलने वाली PHP या अन्य स्क्रिप्ट
OTHER (कभी-कभी PUBLIC या WORLD?) कह सकती है या नहीं, यह अनुमति किसी वेब साइट के UA को प्रभावित करती है? आगंतुक कर सकते हैं

क्या कोई इस पर मेरी समझ को सही, पुष्टि या विस्तार कर सकता है?

स्पष्टीकरण:

यदि मैं अपनी PHP स्क्रिप्ट को अनुमति देना चाहता हूं जो सर्वर पर किसी फ़ाइल को लिखने की अनुमति देता है, तो क्या वह अनुमति USER, GROUP या OTHER में निर्दिष्ट की जाएगी? यदि मैं किसी निर्देशिका की सामग्री को देखने के लिए किसी वेबसाइट आगंतुक के ब्राउज़र को अस्वीकार करना चाहता हूं, तो क्या वह अनुमति dir के USER, GROUP या OTHER में निर्दिष्ट की जाएगी?

जवाबों:


3

आइए कुछ कीवर्ड मुट्ठी निर्दिष्ट करें।

FTPUSER   = you with your ftp client
WWWDAEMON = program (servers) that's responsible for processing your web pages and scripts 
WWWUSER   = user as which the WWWDAEMON processes your pages
BROWSER   = Someone looking at your website with a browser
FILES     = files that reside in your www/ftp site
yourgroup = group that your FTPUSER belongs to and WWWUSER does not

आप एक FTP प्रोग्राम के साथ FTP के रूप में अपने FILES का उपयोग करें

-rwxr-xr-x  2 FTPUSER yourgroup   72 2012-01-18 13:56 somescript.php

अब .. WWWDAEMON उपयोगकर्ता बनें WWWUSER आप नहीं हैं (FTPUSER) यह readआपकी स्क्रिप्ट के लिए प्रयास करते समय अन्य अनुमतियों का सम्मान करता है । (होस्टिंग साइट है जो आपके स्क्रिप्ट को आपके FTPUSER के रूप में चलाती है)। अन्य पढ़ने और निष्कासन की अनुमति को हटाने से somescript.php का उपयोग अवरुद्ध हो जाएगा

# this scipt is unusable trough a browser
-rwxr-x---  2 FTPUSER yourgroup   72 2012-01-18 13:56 somescript.php

विश्व लेखन योग्य अनुमतियों के साथ एक निर्देशिका बनाने से आपकी स्क्रिप्ट को वहां लिखने की अनुमति मिलेगी, लेकिन जब तक आप उस निर्देशिका को किसी भी तरह से सुरक्षित नहीं करते (जैसे .htaccess या इसे अपने www dir के बाहर रखते हैं) इसका मतलब यह भी हो सकता है कि BROWSER उन फ़ाइलों को सीधे एक्सेस कर सकता है, क्योंकि:

BROWSER contacts WWWDAEMON which runs as WWWUSER so 
BROWSER can see everything processed by WWWDAEMON that the WWWUSER can. 

संसाधित का अर्थ यह भी है कि WWWDAEMON भी .htaccess या ब्लॉक एक्सेस के समान सम्मान करता है।

सलाह यह है कि कहना phpwritedirऔर बनाना + rwx अधिकार देना। .htaccessवहां फ़ाइल जोड़ें (यदि आपकी होस्टिंग सेवा इसकी अनुमति देती है)

deny from all

अपने स्क्रिप्ट को WWWUSER के रूप में चलाएं, फिर भी उस निर्देशिका का उपयोग कर सकते हैं, लेकिन WWWDAEMON किसी भी BROWSER को इसके लिए ब्लॉक कर देगा।


अति उत्कृष्ट! कोई है जो मेरे सवाल को समझता है और एक बहुत ही स्पष्ट और उपयोगी उत्तर।
JannieT

3

आपने इसे बहुत मिलाया।

ugougo है user, groupऔर other- नहीं owner। मालिक उपयोगकर्ता है, आमतौर पर सबसे अधिक अधिकार रखते हैं।

ग्रुप अनुमतियाँ प्रभावित करती हैं कि सर्वर पर चलने वाली एक PHP या अन्य स्क्रिप्ट क्या कर सकती है

समूह अनुमतियाँ प्रभावित नहीं करती हैं कि क्या किया जा सकता है (पढ़ें, लिखें, निष्पादित करें), लेकिन यह कौन कर सकता है। उपयोगकर्ता के लिए समान:

USER (कभी-कभी PUBLIC?) अनुमतियों को प्रभावित करता है जो एक वेब साइट आगंतुक का यूए कर सकता है

उपयोगकर्ता स्वामी है, लेकिन इसके oलिए उपयोग किया जाता है other, जिसे आप सार्वजनिक कहते हैं। और फिर - यह वह है जो कर सकता है, जो नहीं किया जा सकता है।

उपयोग करते ugoसमय आप एब्ब्रेविएशन का उपयोग कर सकते हैं chmod, जो संख्यात्मक कोड की तुलना में अधिक आसान है:

  chmod ug+w sample1
  chmod go-r sample2 
  chmod g=w  sample3 
  • नमूना 1: उपयोगकर्ता और समूह के लिए लेखन अनुमति जोड़ें
  • नमूना 2: समूह और अन्य लोगों से पढ़ने की अनुमति हटा दें
  • नमूना 3: समूह अनुमतियों को लिखने के लिए सेट करें

प्रत्येक फ़ाइल एक उपयोगकर्ता और एक समूह के स्वामित्व में है। उनके साथ देखें ls -l। उदाहरण:

ls -l /var
insgesamt 12
drwxr-xr-x  2 root root   592 2012-01-12 08:02 backups
drwxr-xr-x 28 root root   776 2011-08-18 05:12 cache
drwxrwxrwt  2 root root    48 2010-06-22 01:46 crash
drwxr-xr-x  2 root root  3704 2010-06-05 22:01 games
drwxr-xr-x 84 root root  2296 2011-10-16 13:25 lib
drwxrwsr-x  2 root staff   48 2007-10-08 12:47 local
drwxrwxrwt  3 root root    80 2012-01-19 08:03 lock
drwxr-xr-x 22 root root  5992 2012-01-19 08:01 log
drwxrwsrwt  2 root mail    72 2012-01-18 07:56 mail

/ Var की लिस्टिंग का एक हिस्सा। अधिकांश निर्देशिका (डी ...) root.root से संबंधित है जो एक उपयोगकर्ता के रूप में एक समूह के रूप में अच्छी तरह से है। हालाँकि, मेल और सामान समूह हैं, जो उपयोगकर्ता के साथ समान नहीं हैं।

अद्यतन (प्रश्न के अद्यतन के बाद):

यदि मैं अपनी PHP स्क्रिप्ट को अनुमति देना चाहता हूं जो सर्वर पर किसी फ़ाइल को लिखने की अनुमति देता है, तो क्या वह अनुमति USER, GROUP या OTHER में निर्दिष्ट की जाएगी? यदि मैं किसी निर्देशिका की सामग्री को देखने के लिए किसी वेबसाइट आगंतुक के ब्राउज़र को अस्वीकार करना चाहता हूं, तो क्या वह अनुमति dir के USER, GROUP या OTHER में निर्दिष्ट की जाएगी?

खैर - यह या ऐसा करने के लिए एक स्क्रिप्ट की अनुमति नहीं है। यह हमेशा स्क्रिप्ट चलाने वाले उपयोगकर्ता की अनुमति है।

स्क्रिप्ट चलाने के लिए, उपयोगकर्ता को इसे पढ़ने में सक्षम होना चाहिए, जिसका अर्थ है, इसे डिस्क से मेमोरी में डालने के लिए, इसे निष्पादित करने के लिए पढ़ा जाता है। आप इसे पढ़े बिना, उस पर अमल नहीं कर सकते।

किसी फ़ाइल में लिखने के लिए, उपयोगकर्ता के पास एक निर्देशिका लिखने की अनुमति होनी चाहिए - स्क्रिप्ट या प्रोग्राम नहीं।

यदि प्रोग्राम, निर्देशिका में लिखना, एक सर्वर है, तो इसे आमतौर पर वेब में एक अनाम उपयोगकर्ता से शुरू नहीं किया जाता है, लेकिन 'www' जैसे विशेष उपयोगकर्ता से।


नाम भ्रम स्पष्ट करने के लिए धन्यवाद। मेरा एफ़टीपी प्रोग्राम (फाइलज़िला कोई कम नहीं) ओवर्नर, ग्रुप और पब्लिक का उपयोग करता है और मुझे नहीं पता था कि यह उचित लिनक्स नाम नहीं था। मैं भ्रम से बचने के लिए अपने प्रश्न को संपादित करूँगा। मुझे लगता है कि आपके उत्तर की अन्य जानकारी प्रासंगिक नहीं है या मैं अभी भी यहाँ बड़ी याद कर रहा हूँ।
JannieT

तो, आप कह रहे हैं (एक तरह से दौर के बारे में) जो आम तौर पर एक साझा होस्टिंग सेटअप पर होता है, USER अनुमति प्रभावित करती है कि सर्वर पर चलने वाली PHP स्क्रिप्ट क्या कर सकती है, है ना? और इसलिए उस स्थिति में, जब तक कि बहुत विशेष परिदृश्य न हो, ग्रुप की अनुमति को USER सेटिंग से अधिक अड़चन नहीं होना चाहिए, है ना? एक आगंतुक के ब्राउज़र की अनुमति के बारे में क्या? क्या यह अन्य के बराबर है?
JannieT

अंतिम प्रश्न पहले: उपयोगकर्ता ब्राउज़र एक अलग मशीन पर चलता है और किसी भी तरह के प्रभाव में नहीं है। सर्वर को यह भी नहीं पता होता है, कि रिमोट मशीन पर उपयोगकर्ता की क्या अनुमति है, और उपयोगकर्ता नाम का उपयोग किस स्थान पर किया जाता है।
उपयोगकर्ता अज्ञात

समग्र उपयोगकर्ता-अनुमति नहीं है। पहला सवाल यह है कि PHP-script चलाने वाला उपयोगकर्ता कौन है? यह सर्वर, जो उपयोग किया जाता है और इसके कॉन्फ़िगरेशन पर निर्भर करेगा। सर्वर ज्यादातर स्टार्टअप पर init-लिपियों के माध्यम से शुरू किए जाते हैं, जिसका अर्थ है, रूट अनुमतियों के साथ, लेकिन रूट उन्हें किसी तीसरे उपयोगकर्ता के नाम से शुरू कर सकते हैं, जैसे www या www-admin या कुछ और। सामान्य मामलों में इंस्टॉलेशन इस बात का ध्यान रखेगा, और आप फ़ाइलों की अनुमतियों को मैन्युअल रूप से संशोधित नहीं करेंगे। हालाँकि, अपने सर्वर और README फ़ाइलों के मैनुअल पढ़ें।
उपयोगकर्ता अज्ञात

यहां से साफ होने लगी तस्वीर। तो आप कह रहे हैं कि सर्वर (विशेष उपयोगकर्ताओं, अपाचे आदि) को कैसे कॉन्फ़िगर किया जाता है, फ़ाइल और फ़ोल्डर की अनुमति किसी भी तरह से किसी आगंतुक के ब्राउज़र की पहुंच अनुमतियों को प्रभावित नहीं कर सकती है? अगर मुझे ब्राउज़र एक्सेस को नियंत्रित करना है तो मुझे .htaccess फ़ाइलों या अस्पष्ट फ़ोल्डर नामों आदि का उपयोग करने की आवश्यकता है
JannieT

2

क्योंकि आप साझा होस्टिंग के बारे में बात करते हैं, मुझे बस एक साझा होस्टर के बारे में कुछ मज़ेदार विवरण जोड़ना चाहिए जिनके साथ मैं अक्सर काम करता हूं। मेरे अनुभव से, इस तरह का एक सेटअप साझा होस्टिंग वातावरण में असामान्य नहीं है।

साझा होस्टिंग वातावरण में, यह असामान्य नहीं है कि कई उपयोगकर्ता आपके साथ एक ही होस्ट साझा कर रहे हैं। स्वाभाविक रूप से, वे सभी उपयोगकर्ता खाते हैं।

मेरे उपयोगकर्ता खाता हो सकता है 123456-user1। अब क्या किया जाता है, मेरी प्राथमिक समूह के लिए सेट कर दिया जाता है nobodyया nogroupतो यह है कि सभी नए फ़ाइलों और फ़ोल्डरों मैं अंडे के हैं 123456-user1:nobody

वे सुरक्षा की चिंता के लिए होस्ट पर सभी उपयोगकर्ताओं को एक ही प्राथमिक समूह में नहीं फेंकते हैं।

तो अब मैं अपनी फ़ाइलों को पढ़ सकता हूं, कोई भी समूह इसे नहीं पढ़ सकता है (कारण, ठीक है, समूह है nobody), अपाचे भी इसे कैसे पढ़ता है?
अपाचे इसे अपने उपयोगकर्ता खाते के तहत एक उदाहरण चलाकर पढ़ता है। उदाहरण के लिए, PHP के साथ, यह आपके खाते के तहत फ़ाइलों को निष्पादित करने के लिए CGI मोड में चलेगा ।

तो अनुमतियों का पहला ऑक्टेट वह है जो पूरे सिस्टम के लिए प्रासंगिक है। यह परिभाषित करता है कि आप और वेबसाइट विज़िटर (बोलने के लिए) दोनों फाइल में क्या कर सकते हैं। समूह को नजरअंदाज किया जा सकता है। और दूसरों के लिए अंतिम ऑक्टेट कुछ हद तक मालिक के हिस्से के बराबर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.