डेवलपर टूल · chmod कैलकुलेटर
Unix अनुमति मॉडल: 1970 के दशक के chmod से POSIX मोड बिट्स तक
· पेजभूमि
chmod Unix अभिगम नियंत्रण
मालिक/group/others मॉडल उल्लेखनीय रूप से कुछ बदलावों के साथ दशकों से जीवित है। यह पोस्ट बताती है कि यह कहां से आया, POSIX क्या मानकीकृत है, और क्यों यह अभी भी अधिकांश नौकरियों के लिए उपयुक्त है।
आपके 2020 के परिनियोजन में 1970 के दशक का डिज़ाइन - प्रत्येक कंटेनर और CI धावक अभी भी आरडब्ल्यूएक्स बोलते हैं, और यह जानने में मदद करता है कि क्यों
वर्तमान तैनाती में अभी भी 0644 जैसे मोड और rw-r--r-- जैसे प्रतीकात्मक स्ट्रिंग मौजूद हैं, लेकिन यह रिपॉजिटरी एक ऐतिहासिक संग्रह नहीं है। इसका प्रमाण कार्यान्वित प्रतिनिधित्व है: बारह बिट्स, नियतात्मक रूपांतरण, और ऑक्टल और प्रतीकात्मक इनपुट का सत्यापन। प्रत्येक Unix-व्युत्पन्न प्रणाली के बारे में तिथियों, आविष्कारकों, पेटेंटों और दावों के लिए ऐसे स्रोतों की आवश्यकता होती है जिनकी आपूर्ति यहां नहीं की गई है।
इसलिए कैलकुलेटर एक कॉम्पैक्ट अनुमति मॉडल का वर्तमान-काल का दृश्य प्रस्तुत करता है। एक पूर्णांक स्वामी, समूह और अन्य नियंत्रणों के साथ-साथ सेटुइड, सेटगिड और स्टिकी को संचालित करता है। आउटपुट को ऑक्टल, सिम्बॉलिक और मैट्रिक्स फॉर्म में चेक किया जा सकता है। समझौता एक सुसंगत रूपांतरण साबित करता है, न कि मॉडल की उत्पत्ति, सार्वभौमिकता या प्रवर्तन को।
वर्तमान तैनाती में एक लंबे समय तक रहने वाला नोटेशन दिखाई देता है, लेकिन यह रिपॉजिटरी एक इतिहास स्रोत नहीं है
नौ साधारण बिट्स तीन समान वर्ग बनाते हैं। स्वामी, समूह और अन्य प्रत्येक को 4, 2, और 1 भार के साथ पद पढ़ना, लिखना और निष्पादित करना प्राप्त होता है। कैलकुलेटर उस क्रम को हर जगह रखता है: अनुगामी तीन अष्टक अंकों में, नौ-अक्षर की प्रतीकात्मक पंक्ति, चेकबॉक्स मैट्रिक्स, और किसी फ़ाइल या निर्देशिका के लिए उत्पन्न सादे-अंग्रेजी विवरण में।
640 का एक तरीका वंशावली दावे के बिना संरचना को प्रदर्शित करता है। स्वामी 6 का अर्थ है पढ़ना और लिखना, समूह 4 का अर्थ है पढ़ना, और अन्य 0 का अर्थ है कोई सामान्य अनुमति नहीं, उत्पादन rw-r-----। जैसा कि लेख 501 में बताया गया है, ये गणना योग्य झंडे हैं; वास्तविक स्वामी, समूह या प्रक्रिया की पहचान रूपांतरण से बाहर रहती है।
कार्यान्वित मॉडल में तीन वर्गों में नौ साधारण बिट हैं
Setuid को 4000 मास्क के रूप में लागू किया गया है। एक नियमित फ़ाइल पर, रेंडरर एस को स्वामी निष्पादन स्थिति में रखता है जब सेट्यूइड और स्वामी निष्पादन दोनों मौजूद होते हैं। यदि सेटुइड मालिक के निष्पादन के बिना मौजूद है, तो यह इसके बजाय एस को रखता है, इसके नीचे एक विशेष बिट और सामान्य निष्पादन बिट के बीच महत्वपूर्ण अंतर को संरक्षित करता है।
फ़ाइल विवरण लोअर-केस केस को फ़ाइल स्वामी की पहचान के साथ निष्पादन के रूप में समझाता है और अपर-केस संयोजन को चलाने के लिए कुछ भी नहीं होने के रूप में चिह्नित करता है। वे कथन इस कार्यान्वयन के आउटपुट का वर्णन करते हैं। भंडार कोई पेटेंट रिकॉर्ड या प्राथमिक इतिहास प्रदान नहीं करता है, इसलिए यह खंड तंत्र का श्रेय नहीं देता है या इसके परिचय की तारीख नहीं बताता है।
सेतुइड व्यवहार लागू किया गया है; पेटेंट इतिहास स्रोत नहीं है
निर्देशिका स्पष्टीकरण समान संख्यात्मक मान का उपयोग करते हैं लेकिन सामान्य बिट्स के लिए अलग-अलग क्रियाओं का उपयोग करते हैं। सूची प्रविष्टियों को पढ़ें, प्रविष्टियों को बनाने, नाम बदलने और हटाने वाले कवर लिखें, और निर्देशिका में प्रवेश करने और नामित सामग्री तक पहुंचने वाले कवर निष्पादित करें। कार्यान्वयन एक निर्देशिका पर सेटगिड का भी वर्णन करता है जिससे नव निर्मित फ़ाइलें उस निर्देशिका के समूह को प्राप्त करती हैं।
स्टिकी को 1000 द्वारा दर्शाया जाता है और t या T के रूप में अन्य निष्पादन स्थिति पर कब्जा कर लेता है। एक निर्देशिका के लिए, टूल साझा प्रविष्टियों के लिए प्रतिबंधित विलोपन का वर्णन करता है। ये कैलकुलेटर द्वारा प्रस्तुत कार्यान्वित शब्दार्थ हैं; कोई शाखा इतिहास या क्रॉस-सिस्टम वंश स्थापित नहीं किया गया है, और स्थानीय व्यवहार की पुष्टि के लिए किसी लाइव फ़ाइल सिस्टम से पूछताछ नहीं की गई है।
निर्देशिका विशेष-बिट व्यवहार का वर्णन वंशावली दावे के बिना किया गया है
स्रोत प्रत्येक मास्क को सीधे नाम देता है: 0400, 0200, और मालिक के लिए 0100; समूह के लिए 0040, 0020, और 0010; अन्य के लिए 0004, 0002, और 0001। सेतुइड, सेटगिड, और स्टिकी 4000, 2000, और 1000 जोड़ते हैं। रूपांतरण किसी बाहरी मानक के लिए अपील के बजाय बिट परीक्षण और बिटवाइज़ संयोजन है।
इनपुट नियम भी इसी प्रकार ठोस हैं। ऑक्टल वैकल्पिक 0 या 0o-शैली के अग्रणी रूपों के साथ 0 से 7 तक एक से चार अंक स्वीकार करता है। प्रतीकात्मक इनपुट एक मान्यता प्राप्त फ़ाइल-प्रकार चरित्र के साथ नौ स्थिति या दस को स्वीकार करता है। रिपॉजिटरी यह स्थापित नहीं करती है कि प्रत्येक कार्यान्वयन या मानक बिल्कुल समान सतही व्याकरण को स्वीकार करता है।
नामित बिट मास्क और रूपांतरण शब्दार्थ सत्यापित हैं; सार्वभौमिक मानकों के दावे नहीं हैं
कॉम्पैक्ट मॉडल में जानबूझकर सीमाएँ हैं। यह एक स्वामी वर्ग, एक समूह वर्ग और एक अन्य वर्ग प्रदान करता है, लेकिन कोई नामित-उपयोगकर्ता प्रविष्टि, नामित-समूह प्रविष्टि, ACL मास्क, या डिफ़ॉल्ट ACL नहीं प्रदान करता है। इसमें कोई क्षमता सेट भी नहीं है. उन तंत्रों का अनुमान स्पष्ट रूप से सामान्य आरडब्ल्यूएक्स स्ट्रिंग या सफल ऑक्टल रूपांतरण से नहीं लगाया जा सकता है।
कमांड जेनरेशन मॉडल का विस्तार नहीं करता है। यह एक अष्टाधारी तर्क या स्पष्ट u=, g=, और o= खंड उत्सर्जित करता है, आवश्यकता पड़ने पर u+s, g+s, या +t जोड़ता है। परिणाम प्रदर्शित पाठ रहता है. एक जिम्मेदार समीक्षा मोड को पूर्ण एक्सेस-कंट्रोल खाते के रूप में मानने से पहले किसी भी ACL, क्षमता, स्वामित्व और प्रवर्तन साक्ष्य को अलग से इकट्ठा करती है।
एCAल और क्षमताएं कार्यान्वित मोड मॉडल के बाहर हैं
इस स्रोत सेट में विंडोज़, VMS, प्लान 9, या अन्य ऑपरेटिंग-सिस्टम अनुमति इतिहास के साथ कोई समर्थित तुलना नहीं है। याद किए गए विरोधाभासों को तथ्य के रूप में प्रस्तुत करने की तुलना में उन आख्यानों को छोड़ देना अधिक सटीक है। कैलकुलेटर केवल उस मोड प्रतिनिधित्व को प्रदर्शित करता है जिसे वह लागू करता है, और इसके परीक्षण असंबंधित प्रणालियों के विकास के बजाय रूपांतरण व्यवहार स्थापित कर सकते हैं।
यही सावधानी व्यापक अनुकूलता वाली भाषा पर भी लागू होती है। एक मान्यता प्राप्त अग्रणी फ़ाइल-प्रकार के चरित्र को नौ अनुमति स्थितियों से पहले पार्स किया जा सकता है, लेकिन यह सार्वभौमिक एलएस स्वरूपण साबित नहीं करता है। इस टूल के स्वीकृत नोटेशन की सटीक रीडिंग के रूप में आउटपुट का उपयोग करें, फिर इन स्रोत-समर्थित सीमाओं से परे व्यवहार के लिए आधिकारिक प्लेटफ़ॉर्म दस्तावेज़ीकरण से परामर्श लें।
अन्य ऑपरेटिंग-सिस्टम अनुमति इतिहास स्रोतों के बिना छोड़े गए हैं
यहां जो चीज जांच से बची है वह कार्यान्वित मॉडल की सघनता है। बारह नामित बिट्स तीन सामान्य अनुमति वर्गों और तीन विशेष ध्वजों को कवर करते हैं, जबकि ऑक्टल और प्रतीकात्मक दृश्य एक ही पूर्णांक को विभिन्न रूपों में उजागर करते हैं। अमान्य अंकों या ग़लत प्रतीकात्मक अक्षरों को चुपचाप ठीक करने के बजाय अस्वीकार कर दिया जाता है, जिससे रूपांतरण के दौरान त्रुटियाँ दिखाई देने लगती हैं।
यह इतिहास के पाठ के बिना व्यावहारिक निष्कर्ष के लिए पर्याप्त है। मोड को डिकोड करें, प्रत्येक वर्ग का निरीक्षण करें, और ध्यान दें कि क्या s, S, t, या T एक निष्पादन स्थिति को प्रतिस्थापित करता है। फिर वहीं रुकें जहां साक्ष्य रुकता है: कैलकुलेटर प्रतिनिधित्व और उत्पन्न पाठ की व्याख्या करता है, जबकि स्वामित्व, नीति, फ़ाइल सिस्टम व्यवहार और ऐतिहासिक उत्पत्ति के लिए अन्य स्रोतों की आवश्यकता होती है।