लिनक्स में chmod कमांड (Chmod Command in Linux)
What is chmod Command? (chmod कमांड क्या हैं?)
आपके लिनक्स सिस्टम की हर वस्तु में एक परमिशन मोड होता है जो बताता है कि यूजर इस पर क्या कार्य कर सकता है। तीन प्रकार की परमिशनस हैं: पढ़ें (r), लिखें (w), और एक्सीक्यूट करें (x)। किसी फ़ाइल को पढ़ने के लिए उसकी सामग्री को देखना है। उदाहरण के लिए, किसी टेक्स्ट फ़ाइल में टेक्स्ट पढ़ने के लिए किसी व्यक्ति की परमिशन होनी चाहिए। यदि यूजर उस फ़ाइल में एक वाक्य जोड़ना चाहता है, तो उसे लिखने की परमिशन चाहिए। एक्सीक्यूट की परमिशन किसी को फ़ाइल चलाने में सक्षम बनाती है, जैसे शेल स्क्रिप्ट या बाइनरी प्रोग्राम फ़ाइल।
यूनिक्स जैसे ऑपरेटिंग सिस्टम पर, प्रत्येक फ़ाइल से जुड़े फ्लैग का एक सेट यह निर्धारित करता है कि उस फ़ाइल का उपयोग कौन कर सकता है, कौन फ़ाइल को पढ़, लिख या एक्सीक्यूट कर सकता है और वे इसे कैसे एक्सेस कर सकते हैं। इन फ्लैग्स को फ़ाइल परमिशन या मोड कहा जाता है, जैसे कि “Mode of Access”। chmod कमांड का अर्थ “change mode” है। यह उस तरीके को प्रतिबंधित करता है जिस तरह से किसी फ़ाइल को एक्सेस किया जा सकता है।
जब आप -l (Long Format) विकल्प वाली फ़ाइलों को सूचीबद्ध करते हैं, तो आपको उन वर्णों का एक स्ट्रिंग दिखाई देगा, जो इस तरह दिखाई देगा –
-rwxrwxrwx
R – Read
W – Write
X – Execute
Linux file permission
यदि r, w, या x वर्ण मौजूद है, तो फ़ाइल को पढने, लिखने और एक्सीक्यूट करने की परमिशन दी गई है। यदि यह वर्ण मौजूद नहीं है और इसके बजाय a – दिखाई देता है, तो उस फ़ाइल की परमिशन नहीं दी जाती है। लिनक्स में, प्रत्येक फ़ाइल Owner, group और User इन तीन अलग-अलग वर्गों के लिए परमिशन के अधिकार के साथ असाइन की जाती है:
- File owner
- Group Member
- Other
फ़ाइल स्वामित्व को chown और chgrp कमांड का उपयोग करके बदला जा सकता है।
प्रत्येक वर्ग पर लागू होने वाली तीन फ़ाइल परमिशनस प्रकार हैं:
- पढ़ने की परमिशन।
- लिखने की परमिशन।
- एक्सीक्यूट की परमिशन।
यह अवधारणा आपको यह निर्दिष्ट करने की परमिशन देती है कि किन यूजरस को फ़ाइल पढ़ने, फ़ाइल पर लिखने या फ़ाइल को एक्सीक्यूट करने की परमिशन है।
Ls कमांड का उपयोग करके फाइल की परमिशन देखी जा सकती है:
ls -l filename.txt
फाइलों पर परमिशन का प्रभाव
परमिशन | करैक्टर | फाइल का अर्थ |
Read | – | फ़ाइल पठनीय नहीं है। आप फ़ाइल सामग्री नहीं देख सकते हैं। |
r | फ़ाइल पठनीय है। | |
Write | – | फ़ाइल को बदला या संशोधित नहीं किया जा सकता है। |
w | फ़ाइल को बदला या संशोधित किया जा सकता है। | |
Execute | – | फ़ाइल एक्सीक्यूट नहीं की जा सकती। |
X | फ़ाइल को एक्सीक्यूट किया जा सकता है। |
Using chmod Command
Chmod कमांड का सामान्य रूप निम्नलिखित रूप लेता है:
$ chmod [OPTIONS] MODE FILE…
Use Symbolic method in chmod Command
सिंबॉलिक मोड का उपयोग करते समय chmod कमांड का सिंटैक्स निम्न प्रारूप होता है:
$ chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE…
1. फ्लैग का पहला सेट ([ugoa…]), यूजर्स के फ्लैग, परिभाषित करता है कि यूजर किस फ़ाइल की परमिशन को बदलते हैं।
u- फ़ाइल के मालिक।
g – वे यूजर जो ग्रुप के सदस्य हैं।
o – अन्य सभी यूजर।
a – सभी यूजर, जो समान है।
2. फ्लैग का दूसरा सेट ([- + =]), ऑपरेशन के फ्लैग, परिभाषित करता है कि किन परमिशन को हटाया, जोड़ा या सेट किया जाना है:
– निर्दिष्ट परमिशन हटाता है।
+ निर्दिष्ट परमिशन जोड़ता है।
= वर्तमान परमिशन को निर्दिष्ट परमिशन में बदलता है। यदि = चिह्न के बाद कोई परमिशन निर्दिष्ट नहीं की जाती है, तो निर्दिष्ट यूजर वर्ग की सभी परमिशन हटा दी जाती हैं।
3. परमिशनस (perms …) स्पष्ट रूप से शून्य या एक या एक से अधिक अक्षरों का उपयोग करके सेट की जा सकती हैं: r,w,x,X,s और t। एक से दूसरे यूजर्स क्लास में परमिशन कॉपी करते समय सेट u, g और o में से एक अक्षर का उपयोग करें।
4. एक से अधिक यूजर्स वर्गों ([,…]) के लिए परमिशनस सेट करते समय, सिंबल मोड को अलग करने के लिए अल्पविराम (स्पेस के बिना) का उपयोग करें।
नीचे कुछ उदाहरण दिए गए हैं कि सिंबल मोड में chmod कमांड का उपयोग कैसे करें:
ग्रुप के सदस्यों को फ़ाइल पढ़ने की परमिशन देना हैं, लेकिन इसे लिखने और एक्सीक्यूट करने की परमिशन नहीं देना हैं तो –
$ chmod g=r filename
सभी यूजर्स के लिए एक्सीक्यूट की परमिशन से हटाने के लिए –
$ chmod a-x filename
अन्य उपयोगकर्ताओं के लिए Write परमिशनस से हटाने के लिए –
$ chmod -R o-w dirname
फ़ाइल के owner को छोड़कर सभी यूजर्स के लिए रीड, राइट और एक्ज़ीक्यूट को हटा दें:
$ chmod og-rwx filename
निम्नलिखित रूप का उपयोग करके भी यही काम पूरा किया जा सकता है:
$ chmod og= filename
फ़ाइल के owner को पढ़ने, लिखने और एक्सीक्यूट करने की परमिशन दें, फ़ाइल के ग्रुप के लिए पढने की परमिशन और अन्य सभी यूजर्स को कोई परमिशन न दें:
$ chmod u = rwx, g = r, o = filename
फ़ाइल के owner की परमिशन को उस फ़ाइल के ग्रुप में जोड़ें, जिसके पास फ़ाइल के ग्रुप के सदस्य हैं:
$ chmod g + u filename
Use Numeric Method in chmod command
Chmod में वे अंक जो आप उपयोग कर सकते हैं वे यहां सूचीबद्ध हैं-
0: No permission
1: Execute permission
2: Write permission
3: Write and execute permissions
4: Read permission
5: Read and execute permissions
6: Read and write permissions
7: Read, write and execute permissions
हमारी example.txt फ़ाइल को देखते हुए, हम देख सकते हैं कि सभी तीन सेट अक्षर rwx हैं। इसका मतलब है कि सभी ने फ़ाइल के साथ अधिकारों को पढ़ा, लिखा और एक्सिक्यूट किया है।
स्वामी (Owner) के लिए पढ़ने, लिखने और एक्सिक्यूट करने की परमिशन निर्धारित करने के लिए (हमारी सूची से 7); ग्रुप (Group) के लिए पढने और लिखने की परमिशन के लिए (हमारी सूची से 6); और दुसरो के लिए पढ़ने और एक्सिक्यूट करने के लिए (हमारी सूची में से 5) चुने जिन्हें हमें अंक 765 का उपयोग करने की आवश्यकता है:
$ chmod -R 765 example.txt