लिनक्स फ़ाइल अनुमतियाँ कैसे काम करती हैं?
यदि आप कुछ समय (और यहां तक कि ओएस एक्स) के लिए लिनक्स का उपयोग कर रहे हैं, तो आप शायद "अनुमति" त्रुटि के पार आ गए होंगे। लेकिन वे वास्तव में क्या हैं, और वे आवश्यक या उपयोगी क्यों हैं? चलो अंदर का नजारा लेते हैं.
उपयोगकर्ता
दिन में, कंप्यूटर बड़े पैमाने पर मशीनें थीं जो अविश्वसनीय रूप से महंगी थीं। उनमें से सबसे अधिक बनाने के लिए, कई कंप्यूटर टर्मिनलों को झुका दिया गया था, जिससे कई उपयोगकर्ताओं को एक साथ अपने व्यवसाय के बारे में जाने की अनुमति मिली। डेटा प्रसंस्करण और भंडारण मशीन पर किया गया था, जबकि टर्मिनलों को स्वयं डेटा देखने और इनपुट करने के साधन से थोड़ा अधिक था। यदि आप इसके बारे में सोचते हैं, तो यह बहुत अधिक है कि हम "क्लाउड" पर डेटा कैसे एक्सेस करते हैं; अमेज़ॅन के क्लाउड एमपी 3 सिस्टम, जीमेल और ड्रॉपबॉक्स को देखें, और आप देखेंगे कि स्थानीय स्तर पर परिवर्तन किए जा सकते हैं, सब कुछ दूरस्थ रूप से संग्रहीत किया जाता है.
(छवि: जेनिथ जेड -19 "गूंगा" टर्मिनल; क्रेडिट: ajmexico)
इसे काम करने के लिए, अलग-अलग उपयोगकर्ताओं के पास खाते होना चाहिए। उनके पास आवंटित किए गए भंडारण क्षेत्र का एक खंड होना चाहिए, और उन्हें कमांड और प्रोग्राम चलाने की अनुमति दी जानी चाहिए। सभी को विशिष्ट "उपयोगकर्ता अनुमतियाँ" प्राप्त होती हैं, जो यह निर्धारित करती हैं कि वे क्या कर सकते हैं और क्या नहीं कर सकते हैं, जहां वे करते हैं और पहुंच नहीं है, और जिनकी फ़ाइलों को वे संशोधित नहीं कर सकते हैं। प्रत्येक उपयोगकर्ता को विभिन्न समूहों में भी रखा जाता है, जो आगे पहुंच प्रदान करते हैं या प्रतिबंधित करते हैं.
फ़ाइल का उपयोग
इस निराला बहु-उपयोगकर्ता दुनिया में, हमने पहले से ही सीमाएं तय कर ली हैं कि उपयोगकर्ता क्या कर सकते हैं। लेकिन वे क्या उपयोग करते हैं? खैर, हर फाइल में अनुमतियों का एक सेट और एक मालिक होता है। मालिक पदनाम, आमतौर पर बाध्य होता है जब फ़ाइल बनाई जाती है, यह घोषणा करता है कि यह किस उपयोगकर्ता का है, और केवल वह उपयोगकर्ता अपनी पहुंच अनुमतियों को बदल सकता है.
लिनक्स की दुनिया में, अनुमतियाँ तीन श्रेणियों में टूट जाती हैं: पढ़ना, लिखना और निष्पादित करना। "पढ़ें" पहुंच किसी को एक फ़ाइल की सामग्री को देखने की अनुमति देता है, "लिखें" पहुंच किसी को एक फ़ाइल की सामग्री को संशोधित करने की अनुमति देती है, और "निष्पादित" एक स्क्रिप्ट या प्रोग्राम की तरह निर्देशों का एक सेट चलाने की अनुमति देता है। इन श्रेणियों में से प्रत्येक को विभिन्न वर्गों पर लागू किया जाता है: उपयोगकर्ता, समूह और दुनिया। "उपयोगकर्ता" का अर्थ है स्वामी, "समूह" का अर्थ है कोई भी उपयोगकर्ता जो स्वामी के समान समूह में है, और "दुनिया" का अर्थ है, कोई भी या कोई भी.
इन अनुमतियों के साथ फ़ोल्डर भी प्रतिबंधित किए जा सकते हैं। उदाहरण के लिए, आप अपने समूह के अन्य लोगों को अपने होम फ़ोल्डर में निर्देशिकाओं और फ़ाइलों को देखने की अनुमति दे सकते हैं, लेकिन आपके समूह के बाहर किसी को भी नहीं। जब तक आप किसी प्रकार की साझा परियोजना पर काम नहीं कर रहे हैं, तब तक आप केवल अपने आप तक "लिखना" पहुंच को सीमित करना चाहेंगे। आप एक साझा निर्देशिका भी बना सकते हैं जो किसी को भी उस फ़ोल्डर में फ़ाइलों को देखने और संशोधित करने की अनुमति देता है.
उबंटू में अनुमतियाँ बदलना
जीयूआई
उबंटू में आपके पास मौजूद किसी फ़ाइल की अनुमति को बदलने के लिए, बस फ़ाइल पर राइट-क्लिक करें और "गुण" पर जाएं।
आप बदल सकते हैं कि मालिक, समूह, या अन्य पढ़ और लिख सकते हैं, केवल पढ़ सकते हैं, या कुछ भी नहीं कर सकते हैं। आप फ़ाइल के निष्पादन की अनुमति देने के लिए एक बॉक्स भी देख सकते हैं, और यह इसे स्वामी, समूह और अन्य लोगों के लिए एक साथ सक्षम करेगा.
कमांड लाइन
आप इसे कमांड-लाइन के माध्यम से भी कर सकते हैं। उस निर्देशिका में जाएं जिसमें फ़ाइलें हैं और सूची में सभी फ़ाइलों को देखने के लिए निम्न कमांड टाइप करें:
ls -al
प्रत्येक फ़ाइल और निर्देशिका के आगे, आपको एक विशेष खंड दिखाई देगा, जो उसके पास मौजूद अनुमतियों को रेखांकित करता है। यह इस तरह दिख रहा है:
-rwxrw-r-
आर "पढ़ने" के लिए खड़ा है w "लिखने," और के लिए खड़ा है एक्स "निष्पादित" के लिए खड़ा है, निर्देशिका एक "-" के बजाय "डी" से शुरू होगी। आप यह भी देखेंगे कि मान रखने वाले 10 स्थान हैं। आप पहले की उपेक्षा कर सकते हैं, और फिर 3 सेट हैं। पहला सेट मालिक के लिए है, दूसरा सेट समूह के लिए है, और अंतिम सेट दुनिया के लिए है.
किसी फ़ाइल या निर्देशिका की अनुमतियों को बदलने के लिए, आइए chmod कमांड के मूल रूप को देखें.
chmod [वर्ग] [संचालक] [अनुमति] फ़ाइल
chmod [ugoa] [+ या -] [rwx] फ़ाइल
यह पहली बार में जटिल लग सकता है, लेकिन मुझ पर विश्वास करो, यह बहुत आसान है। सबसे पहले, आइए कक्षाओं को देखें:
- u: यह मालिक के लिए है.
- g: यह समूह के लिए है.
- o: यह अन्य सभी के लिए है.
- a: यह उपरोक्त सभी के लिए अनुमतियां बदल देगा.
अगला, ऑपरेटरों:
- +: प्लस चिह्न उन अनुमतियों को जोड़ देगा जो अनुसरण करते हैं.
- -: माइनस साइन उन अनुमतियों को हटा देगा जो अनुसरण करते हैं.
अभी तक मेरे साथ है? और अंतिम खंड वही है जब हमने किसी फ़ाइल की अनुमतियों की जाँच की है:
- r: पढ़ने की अनुमति देता है.
- w: लिखने की अनुमति देता है.
- x: निष्पादन की अनुमति देता है.
अब, चलो इसे एक साथ रखें। मान लें कि हमारे पास "todo.txt" नाम की एक फाइल है जिसमें निम्नलिखित अनुमतियाँ हैं:
-आरडब्ल्यू आरडब्ल्यू-आर-
यही है, मालिक और समूह पढ़ और लिख सकते हैं, और दुनिया केवल पढ़ सकती है। हम इनकी अनुमति बदलना चाहते हैं:
-rwxr-
यही है, मालिक के पास पूर्ण अनुमति है, और समूह पढ़ सकता है। हम इसे 3 चरणों में कर सकते हैं। सबसे पहले, हम उपयोगकर्ता के लिए निष्पादन की अनुमति जोड़ देंगे.
chmod u + x todo.txt
फिर, हम समूह के लिए लिखित अनुमति को हटा देंगे.
chmod g-w todo.txt
अंत में, हम अन्य सभी उपयोगकर्ताओं के लिए पठन अनुमतियाँ हटा देंगे.
chmod ओ-आर todo.txt
हम इन्हें एक कमांड में भी जोड़ सकते हैं, जैसे:
chmod u + x, g-w, o-r todo.txt
आप देख सकते हैं कि प्रत्येक खंड अल्पविराम द्वारा अलग किया गया है और कोई स्थान नहीं है.
यहां कुछ उपयोगी अनुमतियां दी गई हैं:
- -rwxr-xr-x: स्वामी के पास पूर्ण अनुमतियां हैं, समूह और अन्य उपयोगकर्ता फ़ाइल सामग्री पढ़ सकते हैं और निष्पादित कर सकते हैं.
- -rwxr-r-: मालिक के पास पूर्ण अनुमतियां हैं, समूह और अन्य उपयोगकर्ता केवल फ़ाइल पढ़ सकते हैं (उपयोगी है यदि आप अपनी फ़ाइलों को देखने से दूसरों को बुरा नहीं मानते हैं).
- -rwx-: मालिक के पास पूर्ण अनुमति है, अन्य सभी के पास कोई नहीं है (व्यक्तिगत स्क्रिप्ट के लिए उपयोगी).
- -rw-rw--: स्वामी और समूह पढ़ और लिख सकते हैं (समूह के सदस्यों के साथ सहयोग के लिए उपयोगी).
- -rw-r-r-: मालिक पढ़ सकते हैं और लिख सकते हैं, समूह और अन्य उपयोगकर्ता केवल फ़ाइल पढ़ सकते हैं (साझा नेटवर्क पर व्यक्तिगत फ़ाइलों को संग्रहीत करने के लिए उपयोगी).
- -rw--: मालिक पढ़ सकते हैं और लिख सकते हैं, अन्य सभी के पास कोई नहीं है (व्यक्तिगत फ़ाइलों को संग्रहीत करने के लिए उपयोगी).
कुछ अन्य चीजें हैं जो आप चामोद के साथ कर सकते हैं - जैसे सेतुइड और सेटगिड - लेकिन वे थोड़ी गहराई में हैं और अधिकांश उपयोगकर्ताओं को वास्तव में वैसे भी उनका उपयोग करने की आवश्यकता नहीं होगी.
रूट या सुपर-उपयोगकर्ता और सिस्टम फ़ाइलें
आजकल, हम हमेशा ऐसे सिस्टम नहीं चलाते हैं जिनमें कई उपयोगकर्ता होते हैं। हमें अभी भी अनुमति की चिंता क्यों करनी चाहिए?
खैर, यूनिक्स और उसके डेरिवेटिव - लिनक्स, ओएस एक्स, दूसरों के बीच - उपयोगकर्ता द्वारा संचालित चीजों के बीच भी अंतर करते हैं, एक व्यवस्थापक द्वारा या व्यवस्थापक विशेषाधिकारों के साथ चलने वाली चीजें, और सिस्टम द्वारा संचालित चीजें। इस प्रकार, सिस्टम के लिए अभिन्न चीजें ऐसी हैं जिन्हें बदलने या एक्सेस करने के लिए एडमिन विशेषाधिकारों की आवश्यकता होती है। इस तरह, आप गलती से कुछ भी गड़बड़ नहीं करते हैं.
उबंटू में, प्रशासक विशेषाधिकारों के बराबर हासिल करने के लिए आप "सुडो" या "गक्सडो" का उपयोग करने वाली सिस्टम फाइलों में बदलाव करते हैं। अन्य डिस्ट्रोस में, आप "रूट" या "सुपर-यूज़र" पर स्विच करते हैं जो प्रभावी रूप से एक ही काम करता है जब तक आप लॉग आउट नहीं करते हैं.
ध्यान रखें कि इन दोनों परिस्थितियों में, फ़ाइल अनुमतियों को बदलने से प्रोग्राम काम नहीं कर सकते हैं, अनजाने में फ़ाइल स्वामित्व को रूट उपयोगकर्ता (स्वामी के बजाय) में बदल सकते हैं, और सिस्टम को कम सुरक्षित बना सकते हैं (अधिक अनुमतियां प्रदान करके)। इस प्रकार, यह अनुशंसा की जाती है कि आप फ़ाइलों के लिए अनुमतियाँ न बदलें - विशेष रूप से सिस्टम फ़ाइलें - जब तक यह आवश्यक न हो या आपको पता हो कि आप क्या कर रहे हैं.
उपयोगकर्ताओं के बीच सुरक्षा की एक बुनियादी प्रणाली प्रदान करने के लिए फ़ाइल अनुमतियां मौजूद हैं। सीखना कि वे कैसे काम करते हैं, आपको एक बहु-उपयोगकर्ता वातावरण में बुनियादी साझाकरण स्थापित करने में मदद कर सकते हैं, "सार्वजनिक" फ़ाइलों की रक्षा कर सकते हैं, और जब सिस्टम फ़ाइल के स्वामित्व के साथ कुछ गलत हो जाता है, तो आपको एक सुराग देते हैं.
लगता है कि आप चीजों को आसान समझा सकते हैं? एक सुधार है? पुराने दिनों के बारे में याद दिलाना चाहते हैं? एक ब्रेक लें और अपने विचारों को टिप्पणियों में डालें.