फ़ाइल अनुमतियां कैसे काम करती हैं?


37

क्या आप फ़ाइल अनुमतियों को प्रबंधित करने के लिए मुख्य रूप से मुख्य अवधारणाओं और कमांड लाइन टूल का उपयोग कर सकते हैं?

जवाबों:


23

प्रत्येक फ़ाइल में तीन अलग-अलग श्रेणियों के अधिकार हैं:

  • फ़ाइल का स्वामी,
  • फ़ाइल के साथ जुड़ा हुआ समूह, और
  • बाकी सब।

राइट्स का मतलब फ़ाइल पढ़ने का अधिकार, फ़ाइल लिखने का अधिकार, या स्क्रिप्ट या प्रोग्राम के मामले में फ़ाइल निष्पादित करने का अधिकार।

सीएलआई पर, आप कर सकते हैं

  • के साथ मालिक को बदलना chown, जैसेchown guillermooo
  • समूह को बदल दें chgrp, जैसेchgrp root
  • साथ अधिकार को बदलने chmod, जैसे chmod u+w filename.ext(फ़ाइल के मालिक के लिए जोड़ता लेखन अनुमति filename.ext)

यदि आप इनमें से प्रत्येक उपकरण के बारे में अधिक जानना चाहते हैं, तो एक टर्मिनल खोलें और टाइप करें man [tool], जैसे man chmod


8
यह निर्देशिकाओं के साथ थोड़ा और मुश्किल है - निर्देशिका की सामग्री तक पहुंचने के लिए निष्पादन की अनुमति आवश्यक है। इसका मतलब है (उदाहरण के लिए) एक फ़ाइल को पढ़ने या लिखने के लिए आपको निर्देशिका तक पहुंच की आवश्यकता होती है, जिसमें इसे शामिल करने के साथ-साथ फ़ाइल पर उपयुक्त अनुमतियाँ भी होती हैं। यह लगभग कभी नहीं आता है, लेकिन यही कारण है कि यह खराब दस्तावेज / समझा जाता है!
adamnfish

हुह। आप सही हे। मैं कल इसे संपादित करूँगा, जब मैं कम नींद ले रहा हूँ।
ParanoiaPuppy

1
chown guillermoooक्या यह नहीं होना चाहिए chown guillermooo filename?
Zeynel

32

चेतावनी: फाइलों और निर्देशिकाओं की अनुमति बदलना संभावित रूप से हानिकारक है और आपके सिस्टम को बेकार कर सकता है। जब गलत तरीके से रूट के रूप में पुनरावर्ती रूप से चलाया जाता है तो हम उस बिंदु पर आ सकते हैं जहां से हमें उबंटू को फिर से स्थापित करना होगा। इसलिए यह एक अच्छा विचार है कि होम निर्देशिकाओं के बाहर अनुमतियों को न बदलें, और जब भी संभव हो, रूट के रूप में पुन: कमांड को चलाने से बचना चाहिए।

फ़ाइल की अनुमति

उबंटू को यूनिक्स से अनुमति की अवधारणा मिली है जब फ़ाइलों या निर्देशिकाओं के लिए तीन कार्य हैं जिन्हें हम अनुमति या अस्वीकार कर सकते हैं:

  • रीड एक्सेस के लिए r (रीड) फाइल / डायरेक्टरी खोली जा सकती है।
  • w (लिखना) फ़ाइल / निर्देशिका लेखन / संपादन पहुँच के लिए खोली जा सकती है।
  • x (निष्पादित) फ़ाइल को प्रोग्राम / निर्देशिका के रूप में निष्पादित किया जा सकता है।

( किसी निर्देशिका को ट्रेस करना अनिवार्य रूप से इसका उपयोग पथ नाम के भाग के रूप में करने का अर्थ है। अधिक स्पष्टीकरण के लिए https://unix.stackexchange.com/a/13891 या https://unix.stackexchange.com/questions/21251 देखें ।)

इसके अलावा हमारे पास तीन मामले हैं जिनके लिए हम अनुमति देते हैं:

  • u (उपयोगकर्ता) फ़ाइल के स्वामी को किसी भी अनुमति दी जाती है।
  • g (समूह) फ़ाइल जिस समूह की है, उसे अनुमति दी गई है।
  • o (अन्य) सभी अन्य को अनुमति दी गई है।

अब इन छंटनी के संयोजन को प्राप्त करने के लिए हम एक बाइनरी सिस्टम का उपयोग करते हैं जहां प्रत्येक बिट एक अनुमति को परिभाषित करता है। यह निम्नलिखित तालिका में सबसे अच्छा दिखाया जा सकता है

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |       |       |       |
      w        |  010   |   2    |       |       |       |
      x        |  001   |   1    |       |       |       |
    =======================================================
    Number

अब अगर हम उदाहरण के लिए चाहते हैं

a) फ़ाइल के मालिक (= उपयोगकर्ता) के पास r ead, w rite और e x ecute अनुमति है,
b) फ़ाइल के समूह ने r ead और e x ecute अनुमतियां प्रदान की हैं, और
c) अन्य सभी को केवल r ead पहुंच प्राप्त होनी चाहिए ।

तब परिणामी फ़ाइल अनुमति होगी:

 u   g   o
rwx r-x r--

अष्टक संख्याओं में इसे प्राप्त करने के लिए, उदा। के लिए chmodआदेश या हम एक त्रुटि संदेश हम नीचे के रूप में तालिका के ऊपर भरने की जरूरत को समझना होगा जब:

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |   4   |   4   |   4   |
      w        |  010   |   2    |   2   |   0   |   0   |
      x        |  001   |   1    |   1   |   1   |   0   |
    ======================================================
    Numbers add to                   7       5       4     

उपयोगकर्ता (4 + 2 + 1 = 7), समूह (4 + 0 + 1 = 5), और अन्य (4 + 0 + 0 = 4) के लिए प्रत्येक अनुमति संख्या को जोड़ने की आवश्यकता है। परिणामी संख्या तब है:

 u   g   o
 7   5   4

अब हमारे पास अनुमति बिट्स को बदलने के लिए दो विकल्प हैं chmod:

chmod u+rwx g+rx o+r filename

या बहुत सरल के साथ

chmod 751 filename

दोनों आज्ञाएँ वही करेंगे।

हमारे घर में एक नई बनाई गई फ़ाइल की डिफ़ॉल्ट अनुमति 664 (-rw-rw-r--) होगी।

यदि हम चाहते हैं कि प्रोग्राम के रूप में फाइल निष्पादन योग्य हो तो हमें इस अनुमति को बदलना होगा।

  • ध्यान दें कि हमें निर्देशिका की अनुमति को बदलना होगा यह निष्पादन योग्य हो सकता है। केवल अगर दोनों, फ़ाइल और निर्देशिका के निष्पादन योग्य बिट सेट हैं तो हमें इस फ़ाइल को प्रोग्राम के रूप में चलाने की अनुमति होगी।

  • किसी फ़ाइल को हमारे घर में कॉपी करते समय यह वह अनुमतियाँ खो देगा जो हमारे स्वयं के डिफ़ॉल्ट अनुमतियों द्वारा प्रतिस्थापित किया जाएगा (जब तक कि हम उन्नत विकल्पों का उपयोग करके कॉपी न करें जैसे कि एक संग्रह विकल्प)।

  • यह भी ध्यान दें कि फ़ाइल उनके आरोह बिंदु, सम्मान से उनकी अनुमति प्राप्त कर सकती है। माउंट विकल्प। यह महत्वपूर्ण है जब बढ़ते विंडोज स्वरूपित ड्राइव जो यूनिक्स अनुमतियों का समर्थन नहीं करते हैं।

उपयोगकर्ता और समूह

हमें जल्द ही एहसास हुआ कि यह कहानी का केवल आधा हिस्सा था। हमें सामानों को छांटने की भी जरूरत है। ऐसा करने के लिए प्रत्येक फ़ाइल या फ़ोल्डर में एक परिभाषित स्वामी और एक परिभाषित समूह सदस्यता होती है।

हर बार जब हम एक फ़ाइल बनाते हैं तो हम एक फ़ाइल के मालिक होंगे, और फ़ाइल का समूह भी हम ही होंगे। साथ ls -lहम अनुमतियाँ, स्वामित्व, और समूह निम्न उदाहरण उत्पादन से देखा देख सकते हैं:

-rw-rw-r--  1 takkat takkat    4096 Sep 12 20:25 test
  • हमें केवल एक फ़ाइल की अनुमति, समूह या स्वामित्व बदलने की अनुमति है जो हमारी है।

यदि हम फाइल के मालिक नहीं हैं तो हमें एक Permission deniedत्रुटि मिलेगी । केवल रूट ही इसे सभी फाइलों के लिए बदल सकता है। यही कारण है कि हमें उन sudoफ़ाइलों की अनुमति संपादित करते समय उपयोग करना पड़ता है जो हमारे नहीं हैं। chownउपयोगकर्ताओं के लिए और chgrpसमूहों के लिए ऐसा करने के लिए दो अंतर्निहित कमांड हैं।

किसी से फ़ाइल स्वामित्व बदलने के लिए takkatहम यह आदेश जारी कर सकते हैं:

sudo chown takkat testfile

फ़ाइल का समूह बदलने के लिए takkatहम जारी करते हैं

sudo chgrp takkat testfile

अधिक विवरण और विकल्पों के लिए आदेशों के मैनपेज़ पढ़ें। आगे पढ़ने के लिए सिफारिश की गई यह अच्छी और विस्तृत मार्गदर्शिका भी है:

इसके अलावा कुछ संबंधित प्रश्न यहां देखें:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.