Linux फ़ाइल अनुमतियों की व्याख्या: chmod, -rw-r–r–, और एक्सेस अधिकार

目次

1. परिचय

लिनक्स में “एक्सेस परमिशन” क्या हैं?

लिनक्स और यूनिक्स‑समरूप सिस्टमों में, फ़ाइलों और डायरेक्टरीज़ के “एक्सेस परमिशन” (अनुमतियों) का सही प्रबंधन अत्यंत महत्वपूर्ण है। यह सुरक्षा के दृष्टिकोण से और सिस्टम के स्थिर संचालन के लिए दोनों ही पहलुओं से एक आवश्यक तत्व है।
कई लोग, जब टर्मिनल में फ़ाइलों की सूची दिखाते हैं, तो संभवतः -rw-r--r-- जैसे अपरिचित प्रतीक देखते हैं और सोचते हैं, “इसका क्या मतलब है?”

chmod और -rw-r–r– के बीच संबंध

ये प्रतीक फ़ाइल की एक्सेस परमिशन का प्रतीकात्मक प्रतिनिधित्व हैं। chmod कमांड का उपयोग इन एक्सेस परमिशन को सेट और बदलने के लिए किया जाता है। दूसरे शब्दों में, जब आप chmod का उपयोग करके किसी फ़ाइल को विशिष्ट एक्सेस परमिशन देते हैं, तो परिणामस्वरूप -rw-r--r-- जैसे प्रतीक प्रदर्शित होते हैं।

इस लेख का उद्देश्य और लक्षित पाठक वर्ग

इस लेख में, हम शुरुआती लोगों के लिए भी आसान समझ में आने वाले तरीके से यह बताएँगे कि -rw-r--r-- का विशेष अर्थ क्या है और इसे सेट व बदलने के लिए chmod का कैसे उपयोग किया जाता है। साथ ही, हम सुरक्षा विचारों और वास्तविक उपयोग के उदाहरणों जैसे व्यावहारिक सामग्री को भी छुएँगे।
यह लेख वास्तविक‑दुनिया के परिदृश्यों में लागू होने वाले व्यावहारिक ज्ञान की ठोस समझ प्रदान करने का लक्ष्य रखता है, जो लिनक्स में नए उपयोगकर्ताओं से लेकर टर्मिनल संचालन से कुछ हद तक परिचित मध्यम स्तर के उपयोगकर्ताओं तक सभी को लक्षित करता है।

2. chmod क्या है? [Basic Understanding]

chmod कमांड की भूमिका

chmod (उच्चारण “चॉम‑मॉड” या “चेंज मोड”) “change mode” का संक्षिप्त रूप है और यह लिनक्स तथा यूनिक्स‑समरूप ऑपरेटिंग सिस्टमों में फ़ाइलों और डायरेक्टरीज़ की एक्सेस परमिशन (अनुमतियों) को बदलने के लिए उपयोग किया जाने वाला कमांड है।
इस कमांड का उपयोग करके आप “कौन कौन सी क्रिया (पढ़ना, लिखना, निष्पादित करना) कर सकता है” को लचीले ढंग से नियंत्रित कर सकते हैं।
फ़ाइल और डायरेक्टरी की अनुमतियों को सही ढंग से सेट करना न केवल सुरक्षा सुनिश्चित करने के लिए बल्कि फ़ाइल शेयरिंग और निष्पादन से जुड़ी समस्याओं को रोकने के लिए भी अत्यंत महत्वपूर्ण है।

chmod की मूल सिंटैक्स

chmod [options] [permissions] filename

उदाहरण के लिए, इसका उपयोग इस प्रकार किया जाता है:

chmod 644 sample.txt

यह कमांड sample.txt की अनुमतियों को इस प्रकार बदलता है:

-rw-r--r--  1 user group 1234 Apr 13 20:00 sample.txt
  • मालिक (उपयोगकर्ता): पढ़ना और लिखना अनुमति (rw-)
  • समूह: केवल पढ़ने की अनुमति (r–)
  • अन्य: केवल पढ़ने की अनुमति (r–)

दो प्रकार की विशिष्टता: संख्यात्मक और प्रतीकात्मक

chmod के साथ एक्सेस परमिशन निर्दिष्ट करने के दो तरीके हैं:

  • संख्यात्मक विशिष्टता (Numeric Mode)
  • उदाहरण: chmod 755 script.sh
  • यह विधि प्रत्येक उपयोगकर्ता प्रकार के लिए अनुमतियों को संख्यात्मक रूप से निर्दिष्ट करती है।
  • प्रतीकात्मक विशिष्टता (Symbolic Mode)
  • उदाहरण: chmod u=rw,g=r,o=r file.txt
  • यह विधि u (उपयोगकर्ता), g (समूह), और o (अन्य) के लिए r (पढ़ना), w (लिखना), और x (निष्पादित करना) प्रतीकों का उपयोग करके अनुमतियों को निर्दिष्ट करती है।

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

chmod और chown के बीच अंतर पर ध्यान दें

chown कमांड को अक्सर chmod के साथ भ्रमित किया जाता है।

chmod : एक्सेस परमिशन (अनुमतियों) को बदलता है
* chown : फ़ाइलों और डायरेक्टरीज़ के “मालिक” और “समूह” को बदलता है

चूंकि इनके उद्देश्य अलग हैं, इसलिए प्रत्येक कमांड की भूमिका को स्पष्ट रूप से समझना महत्वपूर्ण है।

3. -rw-r–r– के अर्थ को विभाजितना

परमिशन प्रतीकों की संरचना

जब आप लिनक्स में ls -l कमांड चलाते हैं, तो फ़ाइल जानकारी निम्नलिखित स्वरूप में प्रदर्शित होती है:

-rw-r--r--  1 user group  1234 Apr 13  2025 sample.txt

इनमें से, सबसे बाएँ स्थित -rw-r--r-- फ़ाइल की परमिशन (एक्सेस अधिकार) को दर्शाता है। इसे समझने से आप सही रूप से जान सकते हैं कि कौन कौन सी क्रिया कर सकता है।

प्रत्येक भाग का विस्तृत विवरण

① पहला अक्षर: फ़ाइल प्रकार

SymbolMeaning
-Regular file
dDirectory
lSymbolic link
bBlock device
cCharacter device

-rw-r--r-- में, शुरुआती - दर्शाता है कि यह एक “साधारण फ़ाइल” है।

② अक्षर 2 से 10: एक्सेस परमिशन (3 अक्षर × 3 सेट)

  • मालिक (उपयोगकर्ता)rw- → पढ़ना (r) और लिखना (w) की अनुमति है, निष्पादन (x) की नहीं।
  • समूहr-- → केवल पढ़ने योग्य। लिखना और निष्पादन की अनुमति नहीं।
  • अन्यr-- → केवल पढ़ने योग्य।

इस प्रकार, स्थिति यह है कि केवल मालिक ही संपादित कर सकता है, और अन्य उपयोगकर्ता केवल देखने की अनुमति रखते हैं

संख्यात्मक अंकन के साथ पत्राचार: 644 का अर्थ

लिनक्स में, एक ही अनुमतियाँ संख्यात्मक (अष्टक) अंकन द्वारा भी दर्शाई जा सकती हैं। -rw-r--r-- के अनुरूप संख्यात्मक अंकन 644 है।

User TypeSymbolic NotationNumericMeaning
Ownerrw-6Read + Write
Groupr--4Read-only
Othersr--4Read-only

यह संख्या निम्नलिखित गणना से प्राप्त होती है:

  • पढ़ना (r) = 4
  • लिखना (w) = 2
  • निष्पादन (x) = 1

इसलिए, rw- = 4 + 2 = 6, r-- = 4, r-- = 4 → कुल 644

यह अनुमति क्यों उपयोग की जाती है?

-rw-r--r-- (644) एक अनुमति है जो वेब सर्वरों पर सार्वजनिक फाइलों और स्थिर फाइलों (HTML, CSS, आदि) के लिए अक्सर उपयोग की जाती है। कारण निम्नलिखित हैं:

  • केवल मालिक ही संपादित कर सकता है → अनपेक्षित संशोधनों को रोकता है
  • अन्य उपयोगकर्ताओं के लिए पढ़ना अनुमत है → फाइल साझाकरण और प्रकाशन का समर्थन करता है

उपयुक्त रूप से उपयोग करने पर, यह सुरक्षा और सुविधा के बीच संतुलन बनाए रखने वाले फाइल प्रबंधन को सक्षम बनाता है।

4. chmod [Practical Edition] के साथ -rw-r–r– कैसे सेट करें

chmod कमांड का उपयोग करके अनुमतियाँ बदलना

फाइलों और निर्देशिकाओं की पहुँच अनुमतियाँ chmod कमांड का उपयोग करके स्वतंत्र रूप से बदली जा सकती हैं। उदाहरण के लिए, यदि आप स्थिति को -rw-r--r-- सेट करना चाहते हैं, तो आपको अनुमति को “644” पर सेट करने की आवश्यकता है।

संख्यात्मक निर्दिष्टि के साथ सेटिंग विधि

chmod 644 filename प्रारूप का उपयोग करें।

chmod 644 document.txt

यह कमांड document.txt की अनुमतियों को निम्नलिखित रूप में बदलता है:

-rw-r--r--  1 user group 1234 Apr 13 20:00 document.txt
  • मालिक (उपयोगकर्ता): पढ़ना और लिखना अनुमत (rw-)
  • समूह: केवल पढ़ने योग्य (r–)
  • अन्य: केवल पढ़ने योग्य (r–)

प्रतीकात्मक निर्दिष्टि के साथ सेटिंग विधि

यदि आप अनुमतियों को अधिक लचीले ढंग से नियंत्रित करना चाहते हैं, तो प्रतीकात्मक निर्दिष्टि प्रभावी है।

chmod u=rw,g=r,o=r document.txt

यह कमांड निम्नलिखित रूप में व्याख्या की जाती है:

  • u=rw → मालिक के लिए पढ़ना और लिखना अनुमतियाँ सेट करें
  • g=r → समूह के लिए केवल पढ़ना अनुमति दें
  • o=r → अन्य उपयोगकर्ताओं के लिए केवल पढ़ना अनुमति दें

परिणाम संख्यात्मक निर्दिष्टि 644 के समान ही है।

निर्देशिकाओं पर लागू करने पर ध्यान देने योग्य बिंदु

फाइलों के विपरीत, निर्देशिकाओं को उनके सामग्री तक पहुँचने के लिए “निष्पादन अनुमति (x)” की आवश्यकता होती है। उदाहरण के लिए, निम्नलिखित करने से पहुँच प्रतिबंधित हो सकती है:

chmod 644 my_folder

इस सेटिंग के साथ, केवल पढ़ना अनुमति दी जाती है, लेकिन निर्देशिका की सामग्री को “खोलने” का ऑपरेशन (जिसके लिए निष्पादन अनुमति की आवश्यकता होती है) असंभव हो जाता है। सही सेटिंग उदाहरण:

chmod 755 my_folder
  • मालिक: पढ़ना, लिखना, निष्पादन
  • समूह और अन्य: पढ़ना, निष्पादन

इससे, अन्य उपयोगकर्ता निर्देशिका के अंदर की फाइलों को सूचीबद्ध करने में सक्षम होंगे।

अनुमतियाँ पुनरावर्ती रूप से बदलना: -R विकल्प

यदि आप एक साथ कई फाइलों और उपनिर्देशिकाओं को बदलना चाहते हैं, तो -R (पुनरावर्ती) विकल्प का उपयोग करें।

chmod -R 644 my_folder

यह ऑपरेशन my_folder के तहत सभी फाइलों पर 644 अनुमतियाँ लागू करता है। हालांकि, इस विधि के साथ ध्यान देने योग्य बिंदु हैं।

5. ls -l कमांड के साथ अनुमतियाँ कैसे जांचें

फाइल अनुमतियाँ कैसे जांचें?

फाइलों और निर्देशिकाओं की पहुँच अनुमतियों (अनुमतियाँ) को जांचने के लिए, मानक लिनक्स कमांड ls -l का उपयोग करें। यह “लंबी सूची प्रारूप” के लिए खड़ा है और अनुमतियाँ, मालिक, आकार, और अंतिम संशोधन तिथि जैसी विस्तृत जानकारी प्रदर्शित करता है।

मूल उपयोग

ls -l

इस कमांड को निष्पादित करने पर निम्नलिखित के समान आउटपुट प्रदर्शित होगा:

-rw-r--r--  1 naoya devs  2048 Apr 13 20:00 index.html

प्रत्येक आइटम का अर्थ निम्नलिखित है:

ItemMeaning
-rw-r--r--Permissions (access rights)
1Number of hard links (usually 1)
naoyaOwner (user)
devsGroup
2048File size (bytes)
Apr 13 20:00Last modification date and time
index.htmlFilename

अनुमतियाँ कॉलम को कैसे पढ़ें

आइए इस अध्याय के मुख्य विषय -rw-r--r-- भाग पर ध्यान केंद्रित करें। इसे निम्नलिखित रूप में विभाजित किया जा सकता है:

  • पहला अक्षर: फ़ाइल प्रकार
  • - : सामान्य फ़ाइल
  • d : डायरेक्टरी
  • l : सिम्बॉलिक लिंक
  • बाकी के 9 अक्षर: एक्सेस अनुमतियाँ (3 अक्षर × 3 सेट)
  • मालिक (उपयोगकर्ता): rw- → पढ़ना + लिखना
  • समूह: r-- → केवल पढ़ना
  • अन्य: r-- → केवल पढ़ना

दूसरे शब्दों में, इस डिस्प्ले से आप पढ़ सकते हैं कि “केवल मालिक इस फ़ाइल को संपादित कर सकता है, और अन्य उपयोगकर्ता केवल पढ़ सकते हैं।”

केवल विशिष्ट फ़ाइलों की जाँच

यदि आप केवल किसी विशिष्ट फ़ाइल की अनुमतियों की जाँच करना चाहते हैं, तो फ़ाइलनाम निर्दिष्ट करें।

ls -l index.html

यह आपको केवल लक्ष्य फ़ाइल की जाँच करने की अनुमति देता है। यह कई फ़ाइलों वाली डायरेक्टरी में जाँच करने के लिए उपयोगी है।

डायरेक्टरी की जाँच भी संभव है

आप ls -l के साथ डायरेक्टरी की भी जाँच कर सकते हैं। हालांकि, यदि आप डायरेक्टरी की सामग्री की सूची नहीं, बल्कि केवल स्वयं डायरेक्टरी की जानकारी चाहते हैं, तो -d विकल्प का साथ में उपयोग करें।

ls -ld my_folder

यह केवल my_folder स्वयं की अनुमति जानकारी दिखाएगा (इसके अंदर कीाइलों की सूची नहीं दिखेगी)।

अनुमतियों की जाँच करते हुए सुरक्षित रूप से प्रबंधन

chmod के साथ अनुमतियाँ सेट करने के बाद, हमेशा ls -l से परिणाम की जाँच करना अनुशंसित है।
यदि गलत सेटिंग्स बनी रहती हैं, तो वे सुरक्षा घटनाओं या अप्रत्याशित व्यवहार का कारण बन सकती हैं।
इसके अलावा, यदि आप एक साथ कई फ़ाइलों की जाँच करना चाहते हैं, तो आप इसे पाइप के साथ इस प्रकार संयोजित कर सकते हैं:

ls -l | grep '.sh'

यह केवल .sh (शेल स्क्रिप्ट) एक्सटेंशन वाली फ़ाइलों को फ़िल्टर करके दिखाएगा।

6. GUI टूल्स के साथ अनुमतियों की जाँच और परिवर्तन (शुरुआती लोगों के लिए)

कमांड्स से असहज लोगों के लिए विकल्प

Linux संचालन मुख्यतः टर्मिनल के माध्यम से कमांड‑लाइन ऑपरेशन है, लेकिन कई शुरुआती “केवल टेक्स्ट वाली स्क्रीन कठिन” या “बिना सोचे‑समझे गलती करने से डर” महसूस करते हैं।
ऐसे लोगों के लिए आप GUI (ग्राफ़िकल यूज़र इंटरफ़ेस) विधि से भी फ़ाइल अनुमतियों की जाँच और परिवर्तन कर सकते हैं।

Ubuntu के फ़ाइल मैनेजर (Nautilus) में संचालन

Ubuntu जैसी Linux डिस्ट्रीब्यूशन में “Nautilus” नामक फ़ाइल मैनेजर डिफ़ॉल्ट रूप से शामिल होता है। यह Windows के “File Explorer” के समान एक टूल है।
जाँच करने का तरीका:

  1. लक्ष्य फ़ाइल या डायरेक्टरी पर राइट‑क्लिक करें
  2. “Properties” चुनें
  3. “Permissions” टैब खोलें (संस्करण के अनुसार “Access Rights” भी दिख सकता है)

यहाँ आप क्या कर सकते हैं:

  • मालिक और समूह की जाँच व परिवर्तन (प्रशासक अधिकार आवश्यक)
  • पढ़ने, लिखने और निष्पादन (execute) अनुमतियों को स्विच करना
  • एक्सेस अनुमतियों में परिवर्तन तुरंत लागू हो जाता है

GUI में rw- और r-- जैसे प्रतीकों के बजाय “केवल पढ़ें” और पढ़ें और लिखें” जैसी आसान‑समझ अभिव्यक्तियाँ दिखती हैं, इसलिए शुरुआती भी निश्चिंत होकर काम कर सकते हैं।

WinSCP (Windows उपयोगकर्ताओं के लिए SFTP क्लाइंट)

Windows से रिमोट Linux सर्वर से कनेक्ट करते समय आप WinSCP नामक SFTP क्लाइंट के GUI से अनुमतियों को सेट कर सकते हैं।
ऑपरेशन प्रक्रिया:

  1. WinSCP से सर्वर में लॉगिन करें
  2. इच्छित फ़ाइल पर राइट‑क्लिक → “Properties”
  3. संख्यात्मक मान (जैसे 644) या “Access Rights (Permissions)” में चेकबॉक्स बदलें
  4. “OK” पर क्लिक करके लागू करें

फायदे:

  • संख्यात्मक और सिम्बॉलिक दोनों प्रतिनिधित्व से जाँच संभव
  • GUI के माध्यम से डायरेक्टरी के लिए पुनरावर्ती (recursive) अनुमति परिवर्तन भी संभव

ध्यान दें:

  • रूट (root) अधिकारों की आवश्यकता वाली फ़ाइलें sudo अधिकारों के बिना नहीं बदली जा सकतीं

<https://winscp.net/eng/index.php>

FileZilla (क्रॉस‑प्लेटफ़ॉर्म SFTP क्लाइंट)

आप FileZilla नामक SFTP क्लाइंट से भी समान तरीके से अनुमतियों को बदल सकते हैं, जो Mac और Linux पर भी उपयोग किया जा सकता है।
प्रक्रिया:

  1. सर्वर से कनेक्ट होने के बाद, संबंधित फ़ाइल पर राइट‑क्लिक करें
  2. “File permissions…” चुनें
  3. चेकबॉक्स या संख्यात्मक मान सेट करें और “OK” पर क्लिक करके लागू करें

GUI संचालन के लाभ और हानियाँ

लाभ:

  • शुरुआती कम गलतियाँ करने की संभावना रखते हैं
  • परिवर्तन तुरंत दृश्य रूप में पुष्टि हो सकते हैं
  • कमांड्स से अपरिचित लोगों के लिए भी आसान हैं

हानियाँ:

  • सर्वर सेटिंग्स और पर्यावरण के आधार पर, GUI टूल्स के साथ परिवर्तन संभव नहीं हो सकते हैं
  • प्रदर्शित स्थिति और वास्तविक प्रतिबिंब अलग हो सकते हैं, इसलिए पुष्टि के लिए ls -l का उपयोग करने की सलाह दी जाती है

<https://filezilla-project.org/>

7. chmod सेटिंग्स के नोट्स और ट्रबलशूटिंग

क्या आपने सही सेट किया है, फिर भी काम नहीं कर रहा? कारण क्या हो सकता है?

chmod कमांड से एक्सेस परमिशन बदलने के बाद, यह अपेक्षित रूप से काम नहीं कर सकता। अधिकांश मामलों में यह परमिशन सेटिंग त्रुटियों या परमिशन की गलत समझ के कारण होता है।
यहाँ हम व्यावहारिक सामान्य ट्रबलशूटिंग और उनके समाधान प्रस्तुत करेंगे।

“Permission denied” त्रुटि के कारण और समाधान

लक्षण:

bash: ./script.sh: Permission denied

कारण:

  • वह फ़ाइल जिसे आप चलाने की कोशिश कर रहे हैं, उसमें “execute permission (x)” नहीं दिया गया है

ान:

chmod +x script.sh

या, यदि संख्यात्मक निर्दिष्टीकरण का उपयोग कर रहे हैं:

chmod 755 script.sh

ध्यान रखें कि “आप पढ़ और लिख सकते हैं, लेकिन निष्पादित नहीं कर सकते।”

Execute Permission के बिना डायरेक्टरी तक पहुँच नहीं हो पानायदि आप किसी डायरेक्टरी पर chmod 644 सेट करते हैं, तो आप उसकी सामग्री पढ़ नहीं पाएँगे।

कारण:

  • डायरेक्टरी के लिए “Execute permission (x)” आवश्यक है ताकि आप “enter” कर और “सामग्री देख” सकें।

उदाहरण:

chmod 644 my_folder
ls my_folder

→ उपरोक्त स्थिति में आप सामग्री प्रदर्शित नहीं कर पाएँगे और त्रुटि उत्पन्न हो सकती है।

समाधान:

chmod 755 my_folder

Recursive Changes (-R) के जाल

जब chmod -R का उपयोग किया जाता है, तो यह फ़ाइलों और डायरेक्टरी दोनों पर समान परमिशन लागू करता है, जिससे अनपेक्षित समस्याएँ उत्पन्न हो सकती हैं।
सामान्य विफलता उदाहरण:

chmod -R 644 /var/www/html

→ डायरेक्टरी का execute permission हट जाता है, और आप उसकी सामग्री तक पहुँच नहीं सकते।

सही उपयोग:

# Directories with execute permission
find /var/www/html -type d -exec chmod 755 {} ;

# Files with 644
find /var/www/html -type f -exec chmod 644 {} ;

Owner और Group के साथ संयोजन त्रुटियाँ

chmod के अलावा, आपको फ़ाइल के “owner (user)” और “group” पर भी ध्यान देना चाहिए।
उदाहरण के लिए, यदि apache उपयोगकर्ता को किसी फ़ाइल को पढ़ना है, लेकिन मालिक एक सामान्य उपयोगकर्ता है और अन्य उपयोगकर्ताओं को पढ़ने की अनुमति नहीं है, तो वेब डिस्प्ले विफल हो जाएगा।

समाधान:

  • मालिक बदलें: sudo chown www-data:www-data index.html
  • समूह को अनुमति दें: chmod 640 index.html (यदि समूह उपयुक्त है)

777 खतरनाक है! अत्यधिक अनुमतियों का जोखिम

कुछ लोग सोचते हैं, “अगर काम नहीं कर रहा, तो बस 777 सेट कर दो,” लेकिन यह बहुत खतरनाक प्रथा है।
कारण:

  • कोई भी पढ़, लिख और execute कर सकता है
  • तीसरे पक्ष द्वारा छेड़छाड़ और दुर्भावनापूर्ण स्क्रिप्ट उपयोग का जोखिम बढ़ जाता है

सिफ़ारिशी बुनियादी नियम:

  • फ़ाइलें : 644 या 600
  • डायरेक्टरी : 755 या 700
  • स्क्रिप्ट और बाइनरी : 755 (आवश्यकतानुसार)

8. उपयोग उदाहरण और सामान्य परिदृश्य

वास्तविक दुनिया में chmod परमिशन सेटिंग का उपयोग कैसे किया जाता है?

अब तक प्रस्तुत chmod कमांड और r-- एक्सेस परमिशन वास्तविक सर्वर संचालन और विकास पर्यावरण में बार-बार उपयोग होते हैं। यहाँ तीन सामान्य परिदृश्यों के माध्यम से देखते हैं कि परमिशन सेटिंग्स कैसे लागू होती हैं।

1. वेब सर्वर पर HTML फ़ाइलों का प्रबंधन

परिदृश्य:
जब आप Apache या Nginx जैसे वेब सर्वर पर HTML फ़ाइलें प्रकाशित करते हैं, तो उन फ़ाइलों के लिए आमतौर पर -rw-r--r-- (644) परमिशन सेट किया जाता है।

chmod 644 index.html

क्यों 644?

  • मालिक (वेब एडमिन) को बदलाव करने की आवश्यकता → Write permission (w)
  • वेब सर्वर (www-data आदि) को केवल पढ़ने की आवश्यकता → Read permission (r)
  • अन्य उपयोगकर्ताओं को लिखने की अनुमति नहीं चाहिए

इस सेटिंग के साथ आप न्यूनतम आवश्यक परमिशन के साथ वेब कंटेंट को सुरक्षित रूप से प्रकाशित कर सकते हैं।

2. स्क्रिप्ट फ़ाइलों को Execute Permission देना


परिदृश्य: आपने अपना खुद का शेल स्क्रिप्ट backup.sh बनाया है, लेकिन जब आप इसे निष्पादित करने का प्रयास करते हैं, तो आपको “Permission denied.” मिलता है।

chmod 755 backup.sh

इस सेटिंग का अर्थ:

  • मालिक पढ़ सकता है, लिख सकता है, और निष्पादित कर सकता है (rwx)
  • समूह और अन्य पढ़ और निष्पादित कर सकते हैं (rx)

यह अन्य उपयोगकर्ताओं को स्क्रिप्ट को निष्पादित करने की अनुमति देता है जबकि केवल मालिक ही इसे संपादित कर सकता है

3. गोपनीय फाइलों तक पढ़ने की पहुंच को प्रतिबंधित करना

परिदृश्य: आप secrets.txt का प्रबंधन कर रहे हैं, जिसमें API कुंजी और पासवर्ड हैं। आप नहीं चाहते कि कोई भी आपको छोड़कर इसे देखे।

chmod 600 secrets.txt

इस सेटिंग का अर्थ:

  • केवल मालिक पढ़ और लिख सकता है (rw-)
  • समूह और अन्य के पास कोई पहुंच नहीं है (—)

यह सुरक्षा के दृष्टिकोण से एक बहुत महत्वपूर्ण सेटिंग है, और यह सर्वोत्तम अभ्यास है कि हमेशा 600 या 400 (केवल पढ़ने योग्य) के साथ निजी जानकारी का प्रबंधन करें।

4. निर्देशिकाओं को सुरक्षित रूप से साझा करना

परिदृश्य: आप एक साझा निर्देशिका shared_folder बना रहे हैं जिस तक कई डेवलपर्स पहुंचेंगे।

chmod 770 shared_folder

इस सेटिंग का अर्थ:

  • मालिक और समूह: सभी अनुमतियां (rwx)
  • अन्य: कोई पहुंच नहीं (—)

समूह को विकास टीम पर सेट करके, आप सुरक्षित और कुशल सहयोग को सक्षम कर सकते हैं। आप chgrp कमांड से समूह बदलकर लक्ष्य उपयोगकर्ताओं को लचीले ढंग से नियंत्रित कर सकते हैं।

5. गलत सेटिंग्स के कारण होने वाली समस्याएं और बचाव के उदाहरण

परिदृश्य: आपने गलती से chmod -R 777 . निष्पादित किया और सभी फाइलें लिखने योग्य हो गईं। अनुशंसित बचाव उपाय:

  • हमेशा find का उपयोग करके फाइल प्रकार निर्दिष्ट करके अनुमतियों को बदलें
  • बदलाव से पहले ls -l से अनुमतियों की जांच करें
  • test के लिए एक अस्थायी वातावरण में पहले आजमाएं

9. FAQ

Q1. chmod 644 और -rw-r–r– के बीच क्या अंतर है?

A. ये बिल्कुल एक ही चीज को दर्शाने के दो अलग-अलग तरीके हैं।

  • chmod 644 : अनुमतियों को संख्यात्मक रूप से सेट करने का कमांड।
  • -rw-r--r-- : अनुमतियां सेट करने के बाद दिखने वाली प्रतीकात्मक संकेतन, उदाहरण के लिए, ls -l के साथ।

दोनों मालिक के पास पढ़ने और लिखने की अनुमति होने और बाकी सभी के पास केवल पढ़ने की अनुमति वाली स्थिति को दर्शाते हैं।

Q2. यदि फाइल में निष्पादन अनुमति नहीं है तो क्या होता है?

A. यदि आप स्क्रिप्ट या बाइनरी को सीधे चलाने का प्रयास करते हैं तो आपको त्रुटि मिलेगी। उदाहरण के लिए, .sh या .py फाइलों को निष्पादित करने के लिए निष्पादन अनुमति (x) आवश्यक है। बिना इसके, आपको ऐसी त्रुटि दिखेगी:

bash: ./script.sh: Permission denied

समाधान:

chmod +x script.sh

Q3. क्या निर्देशिका को 644 सेट करना ठीक है?

A. सामान्यतः, यह उचित नहीं है। निर्देशिकाओं को “निष्पादन अनुमति (x)” की आवश्यकता होती है। निष्पादन अनुमति के बिना, आप निर्देशिका के अंदर की फाइलों तक पहुंच नहीं सकते। सही सेटिंग:

chmod 755 directory_name

Q4. सबसे सामान्य अनुमति सेटिंग्स क्या हैं?

A. यहां कुछ सामान्य अनुमति सेटिंग्स और उनके उपयोग दिए गए हैं:

  • 644 (-rw-r–r–) : अधिकांश स्थिर फाइलों के लिए जैसे HTML, CSS, इमेज। मालिक को पढ़ने और लिखने की अनुमति देता है, और बाकी सभी को पढ़ने की।
  • 755 (-rwxr-xr-x) : निर्देशिकाओं और निष्पादन योग्य स्क्रिप्टों के लिए। मालिक को पढ़ने, लिखने, और निष्पादित करने की अनुमति देता है; और बाकी सभी को पढ़ने और निष्पादित करने की (लेकिन लिखने की नहीं)।
  • 600 (-rw——-) : संवेदनशील फाइलों के लिए जो केवल मालिक ही पढ़ और लिख सके।
  • 700 (-rwx——) : निजी निर्देशिकाओं के लिए जो केवल मालिक ही पहुंच सके।

Q5. मैं फाइल का मालिक या समूह कैसे बदल सकता हूं?

A. आप chown कमांड का उपयोग करके मालिक बदल सकते हैं और chgrp कमांड का उपयोग करके समूह बदल सकते हैं। मालिक बदलने का उदाहरण:

sudo chown new_owner filename

समूह बदलने का उदाहरण:

sudo chgrp new_group filename

इन कमांडों के लिए आपको sudo की आवश्यकता हो सकती है क्योंकि इन्हें अक्सर प्रशासनिक विशेषाधिकारों की जरूरत होती है।

Q6. क्या फाइल अनुमतियां सभी ऑपरेटिंग सिस्टम पर समान हैं?

ए. नहीं, फ़ाइल अनुमतियाँ ऑपरेटिंग सिस्टम के बीच काफी भिन्न हो सकती हैं।
Linux और Unix‑समान सिस्टम में उपयोगकर्ता, समूह और अन्य के आधार पर विस्तृत अनुमति प्रणाली होती है, जिसमें पढ़ने, लिखने और निष्पादित करने की अनुमतियाँ शामिल हैं। Windows, दूसरी ओर, Access Control Lists (ACLs) पर आधारित एक अलग प्रणाली का उपयोग करता है, जो अधिक सूक्ष्म है और विशिष्ट उपयोगकर्ताओं और समूहों के लिए अधिक विस्तृत तरीके से अनुमतियों को परिभाषित कर सकता है।

10. निष्कर्ष

Linux में फ़ाइल अनुमतियों को समझना और सही ढंग से सेट करना किसी भी सर्वर प्रबंधक या सिस्टम के साथ काम करने वाले व्यक्ति के लिए एक बुनियादी कौशल है। जबकि -rw-r--r-- नोटेशन और chmod कमांड पहली बार में जटिल लग सकते हैं, बुनियादी अवधारणाओं को समझने से आप एक सुरक्षित और सुव्यवस्थित सिस्टम को बनाए रखने की अपनी क्षमता को काफी हद तक बढ़ा सकते हैं।
विभिन्न प्रकार की अनुमतियों को समझकर, प्रतीकात्मक और संख्यात्मक नोटेशन की व्याख्या करके, और chmod कमांड का प्रभावी उपयोग करके, आप सुनिश्चित कर सकते हैं कि आपकी फ़ाइलें और डायरेक्टरी केवल इच्छित उपयोगकर्ताओं के लिए संरक्षित और सुलभ हों।
हमेशा ls -l कमांड के साथ अपनी अनुमति सेटिंग्स को दोबारा जांचें और पुनरावर्ती विकल्पों का उपयोग करते समय सावधान रहें। अभ्यास के साथ, फ़ाइल अनुमतियों का प्रबंधन आपके कार्यप्रवाह का एक स्वाभाविक और आवश्यक हिस्सा बन जाएगा।

侍エンジニア塾