मैंने काम पर एक कोड परिवर्तन देखा, जहां nFS सेटट्रा काम करने के लिए मोड मान 777 से 0777 में बदल दिए गए थे। 2 मानों में क्या अंतर है?
mkdir()। 0777 बनाम 777
मैंने काम पर एक कोड परिवर्तन देखा, जहां nFS सेटट्रा काम करने के लिए मोड मान 777 से 0777 में बदल दिए गए थे। 2 मानों में क्या अंतर है?
mkdir()। 0777 बनाम 777
जवाबों:
यदि आप उन्हें chmod(कमांड लाइन प्रोग्राम) पास कर रहे हैं , तो कोई अंतर नहीं है। लेकिन C प्रोग्राम या समान में, 0777ऑक्टल है (तीन 1 बिट्स के तीन सेट, जो आप चाहते हैं), जबकि 777दशमलव है, और यह काफी अलग पैटर्न है। ( chmodअष्टक के रूप में किसी भी संख्यात्मक तर्क की व्याख्या करेगा, इसलिए कोई अग्रणी शून्य आवश्यक नहीं है।)
0777 (ऑक्टल) == बाइनरी 0b 111 111 111 == अनुमतियां rwxrwxrwx (== दशमलव 511)
777 (दशमलव) == बाइनरी 0b 1 100 001 001== अनुमतियाँ sr----x--x(== ऑक्टल 1411)
chmodकमांड को पास करने वाले मान को हमेशा अष्टक के रूप में व्याख्या करते हैं। प्रयोग करने chmod 888से त्रुटि होगी।
chmodउपसर्ग की परवाह किए बिना, अंकीय के रूप में एक संख्यात्मक तर्क की व्याख्या करता है। (लेकिन वास्तव में संख्या का अपना कोई कार्य नहीं है; सिर्फ अंक, या बिट्स।)
1777लिखना होगा 01777?
1777लिखा 01777गया है (या आप लिख सकते हैं 1023, जो दशमलव में एक ही संख्या है। लेकिन :-) नहीं
पहले बिट का उपयोग चिपचिपा बिट http://en.wikipedia.org/wiki/Sticky_bit के लिए किया जाता है
यदि आप 4 अंकों का उपयोग करके अनुमति सेट करते हैं, तो पहले इस बिट को सेट या हटा देगा।
दिलचस्प जवाब है:
0700और 700के रूप में अन्य उत्तर में बताया गया है,00700और 0700(निर्देशिकाओं के लिए)कम से कम जीएनयू कोरुटिल्स के चामोद संस्करण के मामले में, जो कि लिनक्स पर डिफ़ॉल्ट है।
इस उदाहरण को देखें:
$ ls -ld mydir
drws--s--- 4 myuser mygroup 4096 Jul 8 09:27 mydir
$ chmod 0710 mydir ; ls -ld mydir # surprise ahead -- s-bits remain:
drws--s--- 4 myuser mygroup 4096 Jul 8 09:27 mydir
$ chmod 00710 mydir ; ls -ld mydir # _now_ they're gone:
drwx--x--- 4 myuser mygroup 4096 Jul 8 09:27 mydir
यह निर्देशिका के लिए सेटिड / सेटगिड बिट्स के आकस्मिक विलोपन से बचने के लिए है। विवरण के लिए, chmod प्रलेखन देखें ।
लिनक्स सिस्टम में दो प्रकार की अनुमतियाँ उपलब्ध हैं:
फ़ाइल अनुमति में हमने फ़ाइलों और फ़ोल्डरों पर अनुमति निर्धारित की है:
अनुमतियाँ हैं:
जबकि विशेष अनुमति में तीन प्रकार की अनुमति है:
आपके प्रश्न में आप पूछते हैं कि क्या अंतर है, इसलिए कोई अंतर नहीं है chmod 777 and 0777क्योंकि वहाँ no any octal value(0) शून्य का मान है।