मेरे प्रश्न का उत्तर देने के बाद और परिणाम के बारे में कुछ शोध करने के बाद मुझे एक लेख मिला, जो इसे बहुत अच्छी तरह से समझाता है। मैं इस लेख के कुछ हिस्सों को भविष्य के संदर्भों के लिए यहां साझा करना चाहूंगा।
अनुमति देखना
chmod
किसी फ़ाइल या निर्देशिका की अनुमतियों को बदलने के लिए उपयोग करने के लिए, आपको सबसे पहले यह जानना होगा कि वर्तमान पहुँच का तरीका क्या है। आप cd
उस निर्देशिका द्वारा टर्मिनल में निर्देशिका की सामग्री देख सकते हैं और फिर उपयोग कर सकते हैं:
$ ls -l
-l
स्विच महत्वपूर्ण है क्योंकि उपयोग कर रहा है ls
इसके बिना ही निर्देशिका में फ़ाइल या फ़ोल्डर का नाम प्रदर्शित करेगा।
नीचे ls -l
मेरी होम निर्देशिका पर उपयोग करने का एक उदाहरण है :
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
कॉलम का क्या मतलब है
पहला कॉलम प्रत्येक फ़ाइल का प्रकार है:
-
एक सामान्य फ़ाइल को दर्शाता है।
d
एक निर्देशिका को निरूपित करता है, अर्थात अन्य फ़ाइलों या फ़ोल्डरों वाला एक फ़ोल्डर।
p
एक नामित पाइप (उर्फ फीफो) को दर्शाता है।
l
एक प्रतीकात्मक लिंक को दर्शाता है।
इसके बाद के अक्षर अनुमतियाँ हैं, यह पहला कॉलम है जिसमें हम सबसे अधिक रुचि रखेंगे। दूसरा एक फ़ाइल में कितने लिंक हैं, हम इसे सुरक्षित रूप से अनदेखा कर सकते हैं। तीसरे कॉलम में दो मान / नाम हैं: पहला वाला (मेरे उदाहरण 'पीटर' में) उस उपयोगकर्ता का नाम है जो फ़ाइल का मालिक है। दूसरा मूल्य (उदाहरण में 'उपयोगकर्ता') वह समूह है जिसका स्वामी (समूहों के बारे में और पढ़ें) से है।
अगला कॉलम बाइट्स में फ़ाइल या डायरेक्टरी का आकार है और उसके बाद की तारीखें और समय फ़ाइल या निर्देशिका को संशोधित किया गया था, और निश्चित रूप से फ़ाइल या निर्देशिका का नाम।
परमिशन का क्या मतलब है
पहले तीन अक्षर, पहले -
या बाद में d
, स्वामी के पास अनुमतियाँ हैं। अगले तीन अक्षर अनुमतियाँ हैं जो समूह पर लागू होती हैं। अंतिम तीन पत्र अनुमतियाँ हैं जो सभी पर लागू होती हैं।
तीन अक्षरों के प्रत्येक सेट से बना है r
w
और x
। r
हमेशा पहली स्थिति में है, w
हमेशा दूसरी स्थिति में है, और x
हमेशा तीसरे स्थान पर है। r
पढ़ने की अनुमति है, w
लिखने की अनुमति है, और x
निष्पादन की अनुमति है। यदि -
इन पत्रों में से एक के स्थान पर एक हाइफ़न ( ) है तो इसका अर्थ है कि अनुमति नहीं दी गई है, और यदि पत्र मौजूद है तो उसे प्रदान किया जाता है।
फ़ोल्डर
फ़ोल्डरों के मामले में मोड बिट्स की व्याख्या इस प्रकार की जा सकती है:
r
(पढ़े) दिए गए डायरेक्टरी के कंटेंट की तालिका को पढ़ने की क्षमता के लिए है,
w
(लिखना) दिए गए निर्देशिका की सामग्री की तालिका लिखने की क्षमता के लिए खड़ा है (नई फ़ाइलें, फ़ोल्डर्स बनाएँ; नाम बदलें, मौजूदा फ़ाइलों को हटाएं, फ़ोल्डर्स) अगर और केवल अगर निष्पादित बिट सेट है। अन्यथा, यह अनुमति निरर्थक है।
x
(निष्पादित) उस निर्देशिका में कमांड सीडी और एक्सेस फ़ाइलों, फ़ोल्डरों के साथ दी गई निर्देशिका में प्रवेश करने की क्षमता के लिए खड़ा है।
चामोद कमांड का उपयोग करके अनुमतियाँ बदलना
chmod
लिनक्स और अन्य यूनिक्स जैसे ऑपरेटिंग सिस्टम में एक कमांड है। यह आपको किसी फ़ाइल या निर्देशिका की अनुमतियों (या एक्सेस मोड) को बदलने की अनुमति देता है।
आप अनुमतियों को दो अलग-अलग तरीकों से बदल सकते हैं: - पाठ-आधारित chmod
- संख्या-आधारितchmod
पाठ विधि
किसी फ़ाइल की अनुमतियां या एक्सेस मोड को बदलने के लिए, हम टर्मिनल में chmod कमांड का उपयोग करते हैं। नीचे कमांड की सामान्य संरचना है:
chmod who=permissions filename
कहां कौन पत्र की एक सीमा से है, और प्रत्येक यह दर्शाता है कि आप किसे अनुमति देने जा रहे हैं। वे इस प्रकार हैं:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
अनुमतियाँ ही के रूप में पहले से ही चर्चा कर रहे हैं ( r
, w
, और x
)।
Chmod कमांड हमें मौजूदा सेट से + के बजाय + या - का उपयोग करके अनुमतियाँ जोड़ने और घटाने देता है। यह ऊपर बताए गए आदेशों, जो अनिवार्य रूप अनुमतियों को फिर से लिखने के लिए अलग है (यानी से एक अनुमति बदलने के लिए r--
करने के लिए rw-
, आप अभी भी शामिल करने की जरूरत r
है और साथ ही w
बाद =
में chmod
आदेश। आप से चूक गए हैं r
, इसे दूर ले जाएगा r
के रूप में अनुमति उन्हें = के साथ फिर से लिखा जा रहा है। + और - इसे अनुमतियों के वर्तमान सेट से जोड़ने या दूर ले जाने से बचें)।
संख्या विधि
chmod
संख्याओं का उपयोग करके अनुमतियाँ भी सेट कर सकते हैं।
संख्याओं का उपयोग करना एक अन्य विधि है जो आपको एक ही समय में सभी तीन मालिक, समूह और अन्य के लिए अनुमतियों को संपादित करने की अनुमति देती है। कोड की यह मूल संरचना यह है:
chmod xxx file/directory
जहां xxx एक 3 अंकों की संख्या है, जहां प्रत्येक अंक 1 से 7. तक कुछ भी हो सकता है। पहला अंक स्वामी के लिए अनुमतियों पर लागू होता है, दूसरा अंक समूह के लिए अनुमतियों पर लागू होता है, और तीसरा अंक अन्य सभी के लिए अनुमतियों पर लागू होता है।
इस संख्या संकेतन में, r, w और x के मानों की अपनी संख्या मान है:
r=4
w=2
x=1
तीन अंकों की संख्या के साथ आने के लिए आपको विचार करना होगा कि आप किस स्वामी, समूह और उपयोगकर्ता के लिए क्या अनुमतियाँ चाहते हैं, और फिर उनके मानों को पूरा करें। उदाहरण के लिए, मान लें कि मैं एक निर्देशिका के मालिक को रीड-राइट और एक्ज़ीक्यूटेशन की अनुमति देना चाहता था, और मैं समूह और बाकी सभी को सिर्फ पढ़ने और अनुमतियाँ लागू करना चाहता था। मैं संख्यात्मक मूल्यों के साथ आऊंगा:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
यह निम्नलिखित का उपयोग करने के बराबर है:
chmod u=rwx filename
chmod go=rx filename
अधिकांश फ़ोल्डरों / निर्देशिकाओं को स्वामी को पढ़ने और लिखने और निष्पादन की अनुमति देने के लिए 755 पर सेट किया जाता है, लेकिन बाकी सभी को लिखने से इनकार करते हैं, और फाइलें मालिक के लिए पढ़ने और लिखने की अनुमति देने के लिए आम तौर पर 644 हैं, लेकिन बाकी सभी के लिए पढ़ने के लिए, अंतिम का संदर्भ लें गैर निष्पादन योग्य फ़ाइलों के साथ x अनुमतियों की कमी पर ध्यान दें - यहाँ एक ही सौदा।