ओमस्क और चामॉड के बीच अंतर क्या है


13

मैं umask और chmod के बीच पूरी तरह से भ्रमित हूं। फ़ाइलों को अनुमति देने के लिए दोनों का उपयोग किया जाता है। लेकिन वास्तव में अंतर कहां है और उन्हें कब उपयोग करना है।

मैंने ऑनलाइन दस्तावेज़ पढ़े हैं, लेकिन दोनों मुझे एक जैसे लग रहे हैं।

umask: डिफ़ॉल्ट फ़ाइल अनुमतियों को सेट करने के लिए umask का उपयोग किया जाता है। इन अनुमतियों का उपयोग उनके निर्माण के दौरान बाद की सभी फ़ाइलों के लिए किया जाएगा। chmod: फ़ाइल और निर्देशिका अनुमतियाँ बदलने के लिए उपयोग किया जाता है।

उदाहरण के लिए अगर मेरी समझ के अनुसार फ़ाइल test.doc बनाया गया है।

डिफ़ॉल्ट रूप से यूनिक्स फाइल को 022 umask कोड देता है।

अब जब मैं इसे 666 test.doc में बदल देता हूं। तो मैं इस फाइल के अनुमति स्तर को बदल सकता हूं।

अब क्या होगा अगर मैं उसी फ़ाइल के लिए umask 666 का उपयोग करता हूं ।

क्या फर्क पड़ता है जब मैं chmod 666 और umask 666 का उपयोग करता हूं


2
umaskएक पर्यावरण चर सेट करता है जो स्वचालित रूप से नव निर्मित फ़ाइलों के लिए फ़ाइल अनुमतियाँ सेट करता हैमौजूदा फ़ाइलोंchmod की अनुमतियों को बदलता है ।
DavidPostill

1
@DavidPostill। नहीं, umaskएक "पर्यावरण चर" सेट नहीं करता है जो यह करता है वह वर्तमान शेल निष्पादन वातावरण के फ़ाइल मोड निर्माण मास्क को सेट करता है।
fpmurphy

@ fpmurphy1 स्पष्टीकरण के लिए :) धन्यवाद
DavidPostill

जवाबों:


11

अंतर यह है कि umaskकेवल नई फ़ाइलों को मजबूर करता है । जैसा कि आपने कहा, umask डिफ़ॉल्ट अनुमतियाँ सेट करता है जो एक फ़ाइल / निर्देशिका के निर्माण के समय पर होगी, लेकिन बाद में umaskअब उन्हें प्रभावित नहीं करती है।

chmodहालाँकि, फ़ाइल को चलाने से पहले फ़ाइल बनाने की आवश्यकता होती है।

इसलिए, यदि आप चलाते हैं umask, तो मौजूदा फ़ाइलों पर इसका कोई प्रभाव नहीं पड़ेगा।


2
आप umaskएक फ़ाइल पर उपयोग नहीं कर सकते , यह एक fileतर्क नहीं है ।
DavidPostill

राइट, उस हिस्से को फिर से लिखना।
nKn

4

umaskchmodवास्तव में बहुत अलग है ।

  1. एक महत्वपूर्ण अंतर का अभी तक उल्लेख नहीं किया गया है: chmodसेट, लेकिन umask क्लियर (प्रतिबंधित) अनुमति बिट्स। इसलिए इसे "मास्क" (जैसा कि "बिटमास्क") कहा जाता है।

  2. जैसा कि डेविड ने लिखा है , umaskएक प्रक्रिया (प्रोसेस-लेवल) कॉन्फ़िगरेशन सेटिंग है, इसलिए यह किसी भी विशिष्ट फ़ाइलों पर लागू नहीं है (जैसा कि विरोध किया गया है chmod)।

  3. जो हमें एक और महत्वपूर्ण बिंदु पर लाता है: umaskफाइलों तक सीमित नहीं है। निर्देशिका बनाते समय भी इसे लागू किया जाता है। ( इस उत्तर को भी देखें ।)

  4. यह भी महत्वपूर्ण है, कि chmodवर्तमान में कॉन्फ़िगर किए गए कमांड से ही कमांड प्रभावित नहीं होती है umask

अब, आपके उदाहरण के लिए कि क्या करना होगा umask 666:

यह मौजूदा प्रक्रिया (उदाहरण के लिए अपने शेल) है कि किसी भी नई फाइल सिस्टम वस्तुओं के साथ बनाया जाना चाहिए बता देंगे R+ Wबिट्स (4 + 2 = 6) हटा दिया (जो की अनुमतियों परोक्ष या स्पष्ट निर्माण पर अनुरोध)। (इसलिए, 666 एक बहुत ही व्यावहारिक मूल्य नहीं है, क्योंकि यह केवल X(निष्पादित) बिट्स को सेट करने की अनुमति देता है , लेकिन अपठनीय फ़ाइलों के लिए ...)

उदाहरण के लिए:

$ touch foo; ls -la foo
-rw-r--r-- ... foo   <-- default permissions

$ umask 666
$ touch bar; ls -la bar
---------- ... bar   <-- perms. after the new umask (restriction) is set
$ mkdir foodir; ls -la | grep foodir
d--x--x--x ... dir   <-- not very practical for dirs, either

$ chmod 777 bar; ls -la bar
-rwxrwxrwx .... bar* <-- chmod happily ignores the current umask

$ umask 022
$ touch bong; ls -la bong
-rw-r--r-- ... bong  <-- (so, it seems this was the default umask)

$ chmod 666 bong; ls -la bong
-rw-rw-rw- ... bong  <-- no surprise of any kind here

1

UMASK = chmod 777 - umask अनुमतियां

umask 022 => 777 - 022 => chmod 755
umask 077 => 777 - 077 => chmod 700
umask 002 => 777 - 002 => chmod 775
umask 007 => 777 - 007 => chmod 770
umask 027 => 777 - 027 => chmod 750
umask 177 => 777 - 177 => chmod 600

ऐसा कुछ।


0

निर्देशिकाओं / फाइलों के लिए डिफ़ॉल्ट अनुमति umask 022 है, फिर निर्देशिकाओं को डिफ़ॉल्ट रूप से 755 ( drwx-rw-rw) के साथ सेट किया जाता है और फ़ाइलों को 644 ( -rw-r--r--) के साथ सेट किया जाता है । मूल रूप से, आप एक निर्देशिका के लिए 777 से और एक फ़ाइल के लिए 666 से जो अनुमति चाहते हैं, उसके अष्टाधारी मूल्य को घटाते हैं। तो ऊपर दिए गए उदाहरण से:

(directory) umask 022 => 777 - 022 = 755

(file) umask 022 => 666 - 022 = 644

ओक्टास्क के आधार पर, ओक्टेल के आधार पर और यदि यह एक फ़ाइल या निर्देशिका है, तोumask octal आप कमांड के परिणाम का पता लगा सकते हैं ।

स्रोत

हालाँकि , यदि आप chmod 022 <file>किसी निर्देशिका के लिए हैं , तो आपको यह प्राप्त करना चाहिए: d----w--w-जो कि बहुत मायने नहीं रखेगा।

नीचे, आपको अष्टक मूल्य का एक शानदार विवरण मिलेगा जिसे आप सोमनाथ मुलुक द्वारा महान स्रोतों के साथ यहां पुनः प्राप्त कर सकते हैं ।

N   Description                      ls   binary    
0   No permissions at all            ---  000
1   Only execute                     --x  001
2   Only write                       -w-  010
3   Write and execute                -wx  011
4   Only read                        r--  100
5   Read and execute                 r-x  101
6   Read and write                   rw-  110
7   Read, write, and execute         rwx  111
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.