लिनक्स अनुमतियों में "अन्य" कौन हैं, और "निष्पादित" का क्या अर्थ है?


13

मुझे इन तीन सवालों के जवाब नहीं मिले:

  • "अन्य" कौन है, अगर हम अपने सर्वर पर सभी सेवाएं एक उपयोगकर्ता को देते हैं, "अन्य" सही नहीं हैं? उदाहरण के लिए, यदि हम अपाचे को किसी उपयोगकर्ता के /var/wwwलिए डालते हैं apache, और हम नामांकित को सेट करते हैं , और हमें इसमें प्रवेश chmod 700करना चाहिए, ठीक है?

  • "निष्पादित" और "पढ़ा" के बीच अंतर क्या है?

  • क्लीन इंस्टाल (जैसे उबंटू में) के बाद पूरे सिस्टम के लिए डिफॉल्ट फाइल परमिशन क्या हैं?

जवाबों:


16

"अन्य" कौन है, अगर हम अपने सर्वर पर सभी सेवाएं एक उपयोगकर्ता को देते हैं, "अन्य" सही नहीं हैं? उदाहरण के लिए, यदि हम अपाचे को किसी उपयोगकर्ता के /var/wwwलिए डालते हैं apache, और हम नामांकित को सेट करते हैं , और हमें इसमें प्रवेश chmod 700करना चाहिए, ठीक है?

यहाँ अनुमतियाँ कैसे काम करती हैं, बहुत ही संक्षिप्त तरीके से समझाया गया है:

  • पहला अंक एक फ़ाइल की वास्तविक मालिक के लिए है (जाँच जो के साथ एक फ़ाइल के मालिक है ls -lऔर साथ इसे संशोधित chown)

  • दूसरा अंक फ़ाइल के समूह के लिए है (हालांकि एक फ़ाइल के मालिक जरूरी एक ही समूह है कि फाइल का मालिक में नहीं होना चाहिए)

  • तीसरे अंकों किसी और को, जिसका अर्थ है नहीं फ़ाइल को स्वामी और समूह में हर कोई।

इसलिए यदि आप chmod700 में फाइल करते हैं और यह स्वामित्व में है apache, तो आपके "सामान्य" उपयोगकर्ता भी इसे पढ़, लिख या निष्पादित नहीं कर पाएंगे। यह बहुत ही प्रतिबंधात्मक और केवल दुर्लभ अवसरों में आवश्यक है - उदाहरण के लिए, जब आप अपनी SSH निजी कुंजी को सुरक्षित करना चाहते हैं, तो उसे 600अनुमति मिल जाती है। अपाचे के लिए, यह अन्य समस्याओं के परिणामस्वरूप भी हो सकता है, इस तथ्य के अलावा कि आपके सामान्य उपयोगकर्ता खाते के साथ, आप /var/wwwअब और किसी भी फाइल को संपादित करने में सक्षम नहीं होंगे ।

इसलिए, आम तौर पर बोलते हुए, आपको x00दूसरों के लिए पढ़ने की अनुमति ( ) को हटाने की आवश्यकता नहीं होनी चाहिए ।

आप निर्देशिका को apacheस्वयं दे सकते हैं /var/www, लेकिन 644शायद (दूसरों के लिए केवल पढ़ने के लिए)। एक और दृष्टिकोण मैं अक्सर उपयोग अपने उपयोगकर्ता जोड़ रहा है और एक नया करने के लिए अपाचे उपयोगकर्ता www-usersसमूह, और उसके बाद में फाइल chmodding /var/wwwलिए 775। इस तरह, आप और अपाचे दोनों ही फाइलों को लिख सकते हैं। अधिक जानकारी के लिए यहां देखें: अपाचे के लिए समूह की अनुमति


"निष्पादित" और "पढ़ा" के बीच अंतर क्या है?

निष्पादन योग्य फ़ाइलों को सीधे उपयोगकर्ता द्वारा चलाया जा सकता है - सीधे शेल से। इसे प्रदर्शित करने के लिए, हम एक छोटी फ़ाइल लिखते हैं और इसे "परीक्षण" कहते हैं। निम्नलिखित सामग्री जोड़ें:

echo "I am executable"

फ़ाइल सहेजें। अब, अपने शेल में, दर्ज करने का प्रयास करें ./test। आपको " -बैश: ./est: अनुमति अस्वीकृत " त्रुटि मिलेगी । ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से, नई बनाई गई फ़ाइलें निष्पादन अनुमतियों को पूरा नहीं करती हैं। यदि आप निष्पादन की अनुमति जोड़ते हैं, तो यह काम करेगा।

$ chmod +x test
$ ./test
I am executable

अब, यह सिर्फ एक परीक्षण स्क्रिप्ट थी, लेकिन आम तौर पर, सभी बाइनरी फ़ाइलों (जैसे संकलित प्रोग्राम) को भी निष्पादित अनुमति सेट की आवश्यकता होती है, इसलिए आप वास्तव में उनके साथ कुछ चला सकते हैं और कर सकते हैं, और न केवल पढ़ सकते हैं।

ये उदाहरण के लिए सिस्टम प्रोग्राम हैं जो अधिकतर पाए जाते हैं /binls -l /binउनकी अनुमतियों का निरीक्षण करने के लिए चलाएँ । जैसा कि आप देख सकते हैं, वे स्वामित्व में हैं root, और आप उन्हें बदल नहीं सकते हैं, लेकिन आप हमेशा उन्हें निष्पादित कर सकते हैं।

तो, यह कुछ हद तक एक सुरक्षा विशेषता भी है, क्योंकि आप कुछ उपयोगकर्ताओं के लिए कुछ स्क्रिप्ट और बायनेरिज़ के निष्पादन को प्रतिबंधित कर सकते हैं।

यूनिक्स अनुमतियों के बारे में अधिक जानने के लिए, विकिपीडिया लेख पढ़ें । मूलभूत अनुमतियाँ जिन्हें आप "रीड-राइट-एक्ज़ीक्यूट" के रूप में जानते हैं, वे लंबे समय से हैं, लेकिन आप एक्सेस कंट्रोल लिस्ट को कॉल करने का सिर्फ एक हिस्सा हैं - जो इससे कहीं अधिक कार्यक्षमता प्रदान करते हैं।


क्लीन इंस्टाल (जैसे उबंटू में) के बाद पूरे सिस्टम के लिए डिफॉल्ट फाइल परमिशन क्या हैं?

वे निर्देशिका और मालिक द्वारा भिन्न होते हैं। कुछ फाइलें और निर्देशिका सिस्टम-आरक्षित और स्वामित्व में हैं root। ज्यादातर मामलों में, आप उन्हें अपने सामान्य उपयोगकर्ता खाते के साथ पढ़ सकते हैं।

आपके होम फ़ोल्डर जैसे अन्य निर्देशिका स्पष्ट रूप से आपके उपयोगकर्ता के हैं। यह मशीन पर अन्य उपयोगकर्ताओं के लिए पठन अनुमतियों को अस्वीकार करने के लिए समझ में आता है अगर यह कई व्यक्तियों के बीच साझा किया जाता है - आखिरकार, आप अपने निजी सामान को उजागर नहीं करना चाहते हैं।

अंत में, कुछ फाइलें डिफ़ॉल्ट रूप से निष्पादन योग्य होती हैं (उदाहरण के लिए /bin), लेकिन अन्य नहीं होती हैं (जैसे कॉन्फ़िगरेशन फ़ाइलें /etc)।

फ़ाइल-सिस्टम अनुक्रम स्टैंडर्ड Linux सिस्टम में पाया निर्देशिका के लिए लक्षित उपयोग निर्दिष्ट करता है। आप लगभग "अनुमान" लगा सकते हैं कि किसी निर्देशिका के साथ क्या करना चाहते हैं, इसके आधार पर अनुमतियाँ क्या होनी चाहिए।


धन्यवाद वास्तव में वास्तव में मुझे एक बहुत मदद की! मैं आपको पर्याप्त धन्यवाद नहीं दे सकता, एक और सवाल, "फ़ाइल" और "निष्पादन योग्य" के बीच की रेखा कहां है उदाहरण के लिए PHP फाइलें निष्पादित या Apache द्वारा पढ़ी जाती हैं? फिर से बहुत बहुत धन्यवाद!
randomKek

.phpफ़ाइलें आमतौर पर निष्पादन योग्य नहीं होती हैं। वे केवल बोल रहे हैं, केवल अपाचे द्वारा पढ़ा जाता है जब आप उदाहरण के लिए अपने ब्राउज़र को इंगित करते हैं http://example.com/file.phpइससे पहले कि अपाचे आउटपुट दिखाने में सक्षम है, उन्हें आपकी पीएचपी स्थापना द्वारा व्याख्या की जानी है, लेकिन अपाचे इसका ख्याल रखता है। आप सैद्धांतिक रूप से एक PHP फ़ाइल को निष्पादन योग्य बना सकते हैं और इसे एक स्क्रिप्ट की तरह चला सकते हैं - उसी नस में जैसा कि हमने अपनी testफ़ाइल के साथ किया था , लेकिन इसका उपयोग शायद ही कभी किया जाता है।
01

5

बस उस निष्पादन की अनुमति को निर्देशिकाओं के लिए अलग प्रभावी अर्थ जोड़ना चाहते हैं:

के लिए फ़ाइलें :

  • पढ़ें: अगर फ़ाइल सामग्री पढ़ी जा सकती है
  • लिखें: यदि उपयोगकर्ता या प्रक्रिया फ़ाइल को लिख सकती है (इसकी सामग्री बदल सकती है)
  • निष्पादन: यदि फ़ाइल निष्पादित की जा सकती है

के लिए फ़ोल्डरों :

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

नहीं, निर्देशिकाओं के लिए अलग से कोई अनुमति नहीं है।

(यह जानकारी यहाँ मिली )


0

मैं कोई लिनक्स विशेषज्ञ नहीं हूँ, लेकिन मैं फिर भी जवाब देने की कोशिश करता हूँ।

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

"पढ़ा" का अर्थ है कि यह क्या कहता है। "निष्पादित" का अर्थ है कि आप फ़ाइल लॉन्च कर सकते हैं (उदाहरण के लिए एक कमांड) या आप निर्देशिका को सूचीबद्ध कर सकते हैं।

डिफ़ॉल्ट अनुमति के बारे में, मुझे यकीन नहीं है। मुझे लगता है, यह किसी भी तरह से कॉन्फ़िगर किया जा सकता है और इसलिए प्रत्येक उपयोगकर्ता के लिए अलग हो सकता है।


0

आपको प्रश्न 2 का एक सभ्य उत्तर देने के लिए, कम से कम, यहां एक सारांश-तालिका है जो दिखा रही है कि आप क्या कर सकते हैं / नहीं कर सकते हैं:

+--------------------------------------------------+
| Execute Yes (./file.sh) | Read Yes (vim file.sh) |
|--------------------------------------------------|
| Execute Yes (./file.sh) | Read No (ERROR)        |
|--------------------------------------------------|
| Execute No (ERROR)      | Read Yes (vim file.sh) |
|--------------------------------------------------|
| Execute No (ERROR)      | Read No (ERROR)        |
+--------------------------------------------------+

याद रखना महत्वपूर्ण है, यह है कि इसे निष्पादित करने के लिए मेमोरी में USER रीडिंग फ़ाइल नहीं है, यह USER की ओर से KERNEL कर रहा है।


0

यदि आप अन्य सभी को बाहर करना चाहते हैं तो यह मुश्किल हो सकता है। इस सूची को मेरी / etc / passwd फ़ाइल (अनुमतियाँ और स्पष्टता के लिए हटाए गए) से देखें:

रूट डेमन बिन sys सिंक गेम्स मैन lp मेल समाचार uucp प्रॉक्सी www-data बैकअप सूची irc gnats libuuid syslog messagebus usbmux haldaemon no

{{यह मैं हूं, और यहां नीचे चीजें हैं जो मैंने स्थापित की हैं, ऊपर सिस्टम के साथ आया था}

avahi mysql पल्स rtkit saned समयबद्धता didiwiki

उदाहरण के लिए, lp या uucp से अनुमतियां निकालें और आप प्रिंटिंग तोड़ देंगे। बिन, सीस, या डेमन से अनुमति हटा दें और शायद बहुत सारा सामान टूट जाएगा। irc, गेम्स, मेल, समाचार और बैकअप शायद सुरक्षित रूप से निकाले जा सकते हैं (जब तक कि आप सिस्टम के माध्यम से उनका उपयोग नहीं कर रहे हैं, ब्राउज़र नहीं)। बाकी मैं आपके खोज इंजन कौशल को छोड़ देता हूं।

हालांकि यह ubuntu / bodhi linux है, और अन्य प्रणालियों में कम एक्स्ट्रा कलाकार हो सकते हैं। इन सभी दूसरों को हालांकि सब कुछ जड़ के रूप में चलाने से रोकना है। मैं कल्पना करता हूं कि एक ऐसी प्रणाली बनाई जाए जहां प्रत्येक फाइल को केवल एक सिस्टम उपयोगकर्ता (बार रूट) द्वारा पढ़ा / लिखा / निष्पादित किया जा सके लेकिन मुझे यकीन नहीं है कि इसकी कोशिश की गई है।

निष्पादन को कोड चलाने की अनुमति है। केवल पढ़ने के लिए अनुमति है (और कॉपी?)।

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