लिनक्स अनुमतियों और chmod उपयोग को समझना


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

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

लिनक्स अनुमतियां & amp; स्तर

लिनक्स में, मूल रूप से तीन अनुमतियां होती हैं जिन्हें आपको सामान्य रूप से चिंता करना होगा: पढ़ना, लिखना और निष्पादित करना। इनमें से सभी तीन आत्म-स्पष्टीकरणपूर्ण हैं। अब जब इन अनुमतियों को किसी फ़ाइल पर लागू किया जाता है, तो वे स्तरों पर लागू होते हैं।

लिनक्स में अनुमतियों के तीन स्तर हैं: मालिक, समूह और अन्य। मालिक वह उपयोगकर्ता है जो फ़ाइल / फ़ोल्डर का मालिक है, समूह में फ़ाइल के समूह में अन्य उपयोगकर्ता शामिल हैं और अन्य सभी अन्य उपयोगकर्ताओं का प्रतिनिधित्व करते हैं जो मालिक या समूह में नहीं हैं।

पढ़ें, लिखें और निष्पादित करें या तो प्रतीकात्मक पात्रों या ऑक्टल संख्या के रूप में प्रतिनिधित्व कर रहे हैं। उदाहरण के लिए, यदि आप कुछ फ़ाइलों के साथ निर्देशिका में ls -l करते हैं, तो आपको अनुमतियों का प्रतीकात्मक चरित्र प्रतिनिधित्व दिखाई देगा।

अनुमतियां निम्नानुसार लिखी गई हैं: पहला बिट या तो एक डैश या अक्षर डी है। डैशका अर्थ है कि यह एक फ़ाइल है और dनिर्देशिका के लिए खड़ा है। ध्यान दें कि अगर फ़ाइल नाम एक लिंक है तो पहला बिट lभी हो सकता है। इसके बाद, तीन बिट्स के तीन समूह हैं। प्रत्येक समूह में पहला बिट पढ़ने के लिए है, दूसरा बिट लिखने के लिए है और तीसरा बिट निष्पादित करने के लिए है। पहले तीन बिट मालिक के लिए हैं, दूसरे तीन बिट समूह के लिए हैं और तीसरे तीन बिट्स दूसरे के लिए हैं। यहां एक और दृश्य स्पष्टीकरण दिया गया है।

यदि आप किसी पत्र के स्थान पर डैश देखते हैं, तो इसका मतलब है कि स्वामी, समूह या अन्य सभी उपयोगकर्ता उस अनुमति नहीं है। उपर्युक्त उदाहरण में, मालिक, समूह और अन्य सभी ने लिखना और अनुमतियां निष्पादित की हैं।

यदि आप ls -l कमांड से आउटपुट देखते हैं, तो आप देखेंगे कि मेरी प्रैक्टिस टेक्स्ट फ़ाइल में निम्नलिखित अनुमतियां:

-rw-rw-rw-

इसका मतलब है कि प्रत्येक व्यक्ति ने फ़ाइल के लिए केवल पढ़ने / लिखने की अनुमतियां पढ़ी हैं। यहां एक और उदाहरण दिया गया है:

drwxr--r--

पहली बिट को देखते हुए, हम देख सकते हैं कि अनुमतियां निर्देशिका के लिए हैं। मालिक ने अनुमतियों को पढ़ / लिख / निष्पादित किया है, लेकिन समूह और अन्य उपयोगकर्ताओं के पास केवल पढ़ने की अनुमति है।

ऑक्टल संख्या प्रतिनिधित्व

तो लिनक्स में प्रतीकों का उपयोग करके अनुमतियां कैसे प्रदर्शित की जाती हैं। उसी अनुमतियों का प्रतिनिधित्व करने का दूसरा तरीका ऑक्टल संख्याओं का उपयोग करना है। जब हम बाद में chmod कमांड का उपयोग करते हैं, तो आप देखेंगे कि आप प्रतीकों या ऑक्टल संख्याओं का उपयोग करके अनुमतियों को बदल सकते हैं।

तो लिनक्स ऑक्टेट संख्याओं का उपयोग करके पढ़ने, लिखने और निष्पादित करने का प्रतिनिधित्व कैसे करता है? असल में, यह नीचे दिखाए गए अनुसार प्रत्येक अनुमति को केवल एक संख्या निर्दिष्ट करता है।

पढ़ने की अनुमति 4 से दर्शायी जाती है, 2 द्वारा लिखें और 1 तक निष्पादित करें। आपको केवल ऑक्टेट अनुमति प्राप्त करने के लिए उन्हें जोड़ना है। उदाहरण के लिए, चलो ऊपर दिए गए उदाहरण को लें जहां सभी को सभी अनुमतियां हैं:

-rwxrwxrwx

मालिक के पास rwx है, इसलिए हम 7 के मान प्राप्त करने के लिए 4 + 2 + 1 जोड़ देंगे। हम समूह के लिए एक ही चीज करते हैं और दूसरे के लिए एक ही चीज़ करते हैं। अंतिम ऑक्टल मान 777 है। आइए उदाहरण देखें कि हमने केवल पढ़ने / लिखने की अनुमतियां दी हैं:

-rw-rw-rw-

पहला ऑक्टल नंबर 4 + 2 होगा क्योंकि हम हैं पढ़ने और लिखना जोड़ना। दूसरा तीसरा ऑक्टल नंबर जैसा ही होगा। यहां हमारे पास 666 का अंतिम ऑक्टल मान है।

तो अब इसे दूसरी तरफ आज़माएं। मान लें कि हम जानना चाहते हैं कि 755किस अनुमति का प्रतिनिधित्व करता है? खैर, अगर आप अलग-अलग संख्याओं से इसे तोड़ते हैं तो यह पता लगाना बहुत आसान है। पहला नंबर 7 है, जिसे हम केवल 4 + 2 + 1 जोड़कर प्राप्त कर सकते हैं, जिसका अर्थ है कि स्वामी ने अनुमति / पढ़ / निष्पादन निष्पादित किया है। पांच को केवल 4 + 1 जोड़कर प्राप्त किया जा सकता है, जिसका अर्थ है कि समूह और अन्य उपयोगकर्ताओं ने अनुमतियां पढ़ और निष्पादित की हैं।

उम्मीद है कि यह अच्छा है ऑक्टल संख्याओं का उपयोग कर लिनक्स में अनुमतियों का प्रतिनिधित्व करने के तरीके के बारे में स्पष्टीकरण। यह काफी सरल है।

अनुमतियों को संशोधित करने के लिए chmod का उपयोग करना

अब जब हम समझते हैं कि अनुमतियों को कैसे पढ़ा जाए, तो चलिए बात करते हैं कि हम उन्हें कैसे बदल सकते हैं। इस उद्देश्य के लिए उपयोग करने के लिए सबसे आसान उपयोगिता chmod कमांड है। यहां देखिए यह कैसे काम करता है। आदेश को समझाने का सबसे अच्छा तरीका उदाहरण के माध्यम से जाना है।

चलिए उन उपरोक्त अनुमतियों से शुरू करते हैं जिन्हें हमने ऊपर बताया था, अर्थात्:

-rw-rw-rw-

अगर हम मालिक, समूह और अन्य के लिए निष्पादन अनुमति जोड़ना चाहता था, हम इसके बारे में दो तरीकों से जा सकते थे। हम प्रतीक विधि या ऑक्टल विधि का उपयोग कर सकते हैं। प्रतीक विधि के लिए, हम नीचे दिखाए गए अनुसार निम्न कार्य करेंगे:

सटीक आदेश

chmod a+x filename

वाक्यविन्यास निम्नानुसार है: मालिक का प्रतिनिधित्व करने वाला अक्षर या अक्षर (u), समूह (g), अन्य (o) या सभी (a) अनुमतियों को जोड़ने के लिए +के बाद अनुमतियों को हटाने के लिए -और फिर अनुमति के लिए पत्र (पढ़ने के लिए r, wलिखने के लिए और xनिष्पादित करने के लिए)।

उपर्युक्त उदाहरण में, मैंने जोड़ा सभी उपयोगकर्ताओं के लिए अनुमति निष्पादित करें। परिणाम जैसा कि आप उपरोक्त स्क्रीनशॉट में देख सकते हैं वह स्वामी, समूह और अन्य के लिए xहै। अब मान लीजिए कि मैं केवल समूह और अन्य उपयोगकर्ताओं के लिए लिखना और निष्पादन अनुमतियां हटाना चाहता हूं।

जैसा कि आप यहां देख सकते हैं, मैंने उपयोग किया इसे पूरा करने के लिए निम्न आदेश पर:

chmod go-wx filename

चूंकि मैं समूह और अन्य के लिए अनुमतियां बदलना चाहता हूं, इसलिए मैं gअक्षर और पत्र का उपयोग करता हूं । मैं अनुमतियों को हटाना चाहता हूं, इसलिए मैं -चिह्न का उपयोग करता हूं। अंत में, मैं लिखना और निष्पादन निष्पादन को हटाना चाहता हूं, इसलिए मैं wऔर xका उपयोग करता हूं। प्रतीक उपयोग के लिए यहां एक आसान छोटी तालिका है:

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

अगर हम किसी फ़ाइल पर निम्न अनुमतियों से प्रारंभ करते हैं, तो देखते हैं कि हम उन्हें ऑक्टल विधि का उपयोग करके कैसे बदल सकते हैं:

<एस>16

ऊपर, आप देख सकते हैं कि मैंने निम्न आदेश का उपयोग किया है:

chmod 744 filename

यह मूल रूप से कहता है कि मालिक को पढ़ने / लिखने / निष्पादित करने की अनुमति मिलती है और समूह और अन्य को केवल पढ़ने की अनुमति मिलती है। जैसा कि आप देख सकते हैं, एक साधारण कमांड में अनुमतियां जोड़ना या निकालना आसान है। चलो चलते रहें और कहें कि मैं अनुमतियों को फिर से बदलना चाहता हूं।

अब मैंने निम्न आदेश का उपयोग किया, फिर एक बहुत ही सरल:

chmod 640 filename

यहां हमने मालिक को पढ़ने / लिखने की अनुमति दी है, समूह केवल पढ़ने की अनुमति है और अन्य समूह को अनुमति नहीं है। आप अनुमतियों को इंगित करने के लिए शून्य का उपयोग करते हैं। बहुत आसान, आह?

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

Linux File Permissions - Linux Tutorial 6

संबंधित पोस्ट:


16.02.2017