यह कैसे काम करता है
Unix और Linux में हर फ़ाइल के तीन वर्गों के लिए अनुमतियाँ होती हैं: स्वामी उपयोगकर्ता, समूह और शेष ("अन्य")। प्रत्येक वर्ग की तीन अनुमतियाँ हो सकती हैं: पढ़ना (r), लिखना (w) और निष्पादन (x)। chmod वह कमांड है जो इन्हें बदलता है।
अनुमतियाँ दो समतुल्य तरीकों से दर्शाई जाती हैं: संख्यात्मक (ऑक्टल) और प्रतीकात्मक। ऑक्टल में प्रत्येक वर्ग 0 से 7 तक का एक अंक होता है, जो 4 (पढ़ना) + 2 (लिखना) + 1 (निष्पादन) का योग है। प्रतीकात्मक में इन्हें नौ वर्णों के रूप में लिखा जाता है, उदाहरण के लिए rwxr-xr-x।
शुरुआत का चौथा अंक विशेष बिट्स को नियंत्रित करता है: setuid (4), setgid (2) और sticky (1)। यह टूल दोनों दिशाओं में परिवर्तित करता है: चेकबॉक्स से अनुमतियाँ चुनें ताकि ऑक्टल, प्रतीकात्मक नोटेशन और कॉपी के लिए तैयार कमांड मिले, या कोई मान पेस्ट करें ताकि वह प्रतिबिंबित दिखे।
उदाहरण
755rwxr-xr-xस्वामी पढ़, लिख और निष्पादित कर सकता है; समूह और अन्य केवल पढ़ और निष्पादित कर सकते हैं। निर्देशिकाओं और स्क्रिप्ट के लिए विशिष्ट।644rw-r--r--स्वामी पढ़ता और लिखता है; समूह और अन्य केवल पढ़ते हैं। डेटा और कॉन्फ़िगरेशन फ़ाइलों में सामान्य।600rw-------केवल स्वामी पढ़ और लिख सकता है; और किसी की पहुँच नहीं होती। निजी कुंजियों के लिए अनुशंसित।4755rwsr-xr-xपहला अंक 4 setuid सक्षम करता है: प्रोग्राम फ़ाइल के स्वामी के विशेषाधिकारों के साथ चलता है।उपयोग के मामले
- किसी स्क्रिप्ट को निष्पादन अनुमति देना (chmod 755) या संवेदनशील डेटा वाली फ़ाइल को प्रतिबंधित करना (chmod 600)।
- किसी ट्यूटोरियल की ऑक्टल संख्या और ls -l जो दिखाता है उसके बीच, बिट्स को हाथ से गणना किए बिना, अनुवाद करना।
- किसी सर्वर पर कमांड चलाने से पहले यह समझना कि वह वास्तव में क्या अनुमतियाँ देता है।
अक्सर पूछे जाने वाले प्रश्न
755 केवल तीन अंक क्यों हैं और कभी-कभी चार क्यों दिखते हैं?
तीन अंक उपयोगकर्ता, समूह और अन्य को दर्शाते हैं। चौथा अंक, वैकल्पिक और शुरुआत में, विशेष बिट्स (setuid, setgid, sticky) को नियंत्रित करता है; यदि यह 0 हो तो इसे छोड़ दिया जाता है, इसीलिए 0755 और 755 एक ही हैं।
rwsr-xr-t में s और t का क्या अर्थ है?
वे किसी विशेष बिट को दर्शाने के लिए x की जगह लेते हैं। उपयोगकर्ता ब्लॉक में s setuid है, समूह ब्लॉक में setgid; अन्य ब्लॉक में t sticky बिट है। अपरकेस (S/T) में बिट सक्रिय है पर निष्पादन अनुमति के बिना।
chmod 755 और chmod u=rwx,g=rx,o=rx में क्या अंतर है?
कोई नहीं: वे बिल्कुल समान अनुमतियाँ बनाते हैं। ऑक्टल रूप अधिक संक्षिप्त है और प्रतीकात्मक अधिक पठनीय। chmod बाकी को छुए बिना u+x (स्वामी को निष्पादन जोड़ना) जैसे सापेक्ष परिवर्तन भी स्वीकार करता है।
किसी निजी SSH कुंजी की क्या अनुमतियाँ होनी चाहिए?
600 (rw-------)। यदि समूह या अन्य इसे पढ़ सकते हों तो SSH किसी निजी कुंजी का उपयोग करने से मना कर देता है। ~/.ssh फ़ोल्डर आमतौर पर 700 उपयोग करता है।