डेवलपर टूल · chmod कैलकुलेटर
chmod क्या व्यक्त नहीं कर सकता: क्षमताएं, अपरिवर्तनीय फ़ाइलें और MAC
· पेजभूमि
chmod Unix अभिगम नियंत्रण
मोड बिट्स कई परतों में से एक है जो तय करती है कि कोई ऑपरेशन सफल होगा या नहीं। यह पोस्ट दूसरों का परिचय देती है (फ़ाइल क्षमताएं, चैट फ़्लैग, SELinux और AppArmor) और प्रत्येक के इनकार को कैसे पहचानें।
रूट 644 फ़ाइल नहीं लिख सकता - मोड हाँ कहता है, chmod कुछ भी नहीं बदलता है, और त्रुटि बनी रहती है
एक मोड किसी ऑपरेशन की अनुमति दे सकता है जबकि ऑपरेशन अभी भी विफल रहता है। कैलकुलेटर 644 को rw-r--r-- के रूप में डिकोड करता है, जिसका अर्थ है कि मालिक एक नियमित फ़ाइल को पढ़ और संशोधित कर सकता है जबकि समूह और अन्य इसे पढ़ सकते हैं। यह केवल आपूर्ति किए गए पारंपरिक बिट्स का निपटान करता है। यह न तो प्रक्रिया स्वामित्व, पथ पहचान और न ही किसी अन्य प्रवर्तन परत की अनुपस्थिति को साबित करता है।
स्रोत कई अनमॉडल नियंत्रणों का नाम देते हैं: क्षमताएं, अपरिवर्तनीय विशेषताएं, अनिवार्य पहुंच नीति, माउंट फ़्लैग, नेमस्पेस, सिस्कल फ़िल्टर, एCAल और स्वामित्व। किसी मोड में दोबारा प्रवेश करने या कोई अन्य chmod कमांड उत्पन्न करने से उनके बारे में कुछ भी पता नहीं चलता है। पहले ऑक्टल, प्रतीकात्मक और मैट्रिक्स समझौते को सत्यापित करें; यदि विफलता बनी रहती है, तो chmod अनुमानों को बढ़ाने के बजाय पर्यावरण से साक्ष्य इकट्ठा करें।
एक मोड-संगत ऑपरेशन उन परतों के लिए अभी भी विफल हो सकता है जिन्हें यह टूल नहीं देख सकता है
कैलकुलेटर बाहरी नियंत्रणों के बीच कोई क्रम नहीं दिखाता है। इसका संपूर्ण डेटा मॉडल ऑक्टल 0000 से 7777 तक एक पूर्णांक है, जो स्वामी, समूह, अन्य, सेतुइड, सेटगिड और स्टिकी बूलियन में विस्तारित है। स्पष्टीकरण उस मान और लक्ष्य प्रकार का उपयोग करते हैं। कोई कर्नेल निर्णय पथ, सुरक्षा-मॉड्यूल अनुक्रम, या सिस्कल परिणाम गणना में प्रवेश नहीं करता है।
वह सीमा पेज को एक नियंत्रित पहला कदम बनाती है। मोड की पुष्टि करें, ट्रैवर्सल को निष्पादन से अलग करें, और विशेष-बिट अक्षरों को नोट करें। अनुच्छेद 501 स्वामित्व और मूल-निर्देशिका निष्पादन को निकटवर्ती चेक के रूप में जोड़ता है। इनके अलावा, ये स्रोत एCAल, अनिवार्य नीति, माउंट, विशेषताएँ, नामस्थान, क्षमताएं या फ़िल्टर के बीच कोई नैदानिक रैंकिंग प्रदान नहीं करते हैं। एक संगत मोड केवल प्रश्न को सीमित करता है।
कैलकुलेटर बाहरी प्रवर्तन परतों के बीच ऑर्डर को मॉडल नहीं करता है
फ़ाइल क्षमताएं उपलब्ध साक्ष्य से बाहर हैं। कार्यान्वयन में कोई क्षमता नाम, डेटा पार्सर, निरीक्षण आदेश या सेतुइड के साथ उनकी बातचीत का लेखा-जोखा शामिल नहीं है। यह setuid को 4000 के रूप में एन्कोड कर सकता है और एक निष्पादन योग्य नियमित फ़ाइल की व्याख्या कर सकता है। इसकी तुलना सूक्ष्मतर विशेषाधिकार प्रणालियों से नहीं की जानी चाहिए जिनका यह भंडार न तो मॉडल बनाता है और न ही दस्तावेज़ बनाता है।
पेज जो साबित करता है वह ठोस है। मोड 4755 rwsr-xr-x बन जाता है, इसके सारांश नाम setuid होते हैं, और असाइनमेंट u+s से जुड़ जाते हैं। मोड 4644 अपरकेस S का उपयोग करता है क्योंकि स्वामी निष्पादन अनुपस्थित है, जिससे लगभग हमेशा गलत कहे जाने वाले संयोजन का पता चलता है। परीक्षण उन मोड तथ्यों को स्थापित करते हैं; बाहरी टूलों को यह निर्धारित करना होगा कि क्षमताएं मौजूद हैं या नहीं, पहुंच की अनुमति दें या बेहतर डिज़ाइन प्रदान करें।
फ़ाइल क्षमताएँ स्रोत सेट से बाहर हैं
अपरिवर्तनीय और केवल-जोड़ने योग्य विशेषताएँ भी मॉडल से अनुपस्थित हैं। कैलकुलेटर न तो फ़ाइल सिस्टम विशेषताओं को पढ़ता है और न ही उन्हें बदलने के लिए आदेशों को पहचानता है। इसके मैट्रिक्स में स्वामी, समूह और अन्य के लिए rwx, साथ ही तीन विशेष बिट्स शामिल हैं। इसलिए एक दृश्य लेखन बिट एक सफल लेखन की गारंटी नहीं दे सकता है, और इसे बार-बार टॉगल करने से उस विशेषता का निदान नहीं किया जा सकता है जिसे पेज ने कभी नहीं देखा है।
भेद क्रियाशील रखें. यदि 644 सही ढंग से प्रस्तुत होता है, तो स्वामी लेखन पारंपरिक मोड में मौजूद होता है; वह प्रतिनिधित्व साक्ष्य है, पूरा लेख नहीं। पेज सुरक्षित रूप से उद्धृत प्रदर्शन पथ को नहीं खोलता है या इसके उत्पन्न कमांड को नहीं चलाता है। जब वास्तविक विफलता के साथ पर्याप्त बिट्स हों, तो न देखी गई स्थिति को जिम्मेदार ठहराने के बजाय वास्तविक वस्तु और सिस्टम का निरीक्षण करें।
अपरिवर्तनीय और केवल-जोड़ने योग्य विशेषताएँ स्रोत सेट के बाहर हैं
अनिवार्य पहुंच-नियंत्रण संदर्भ, प्रोफ़ाइल और लॉग यहां पार्स नहीं किए गए हैं। सूत्रों ने SELinux और AppArmor का उल्लेख केवल उन निर्णयों के उदाहरण के रूप में किया है जिन्हें कैलकुलेटर नहीं देख सकता। वे कोई संदर्भ सिंटैक्स, नीति शब्दार्थ, लॉग प्रारूप या डायग्नोस्टिक कमांड प्रदान नहीं करते हैं। इसलिए अकेले मोड किसी भी सिस्टम को अस्वीकार नहीं कर सकता; साक्ष्य प्रवर्तन परिवेश से आना चाहिए।
फ़ाइल-या-निर्देशिका चयनकर्ता इस सीमा को पुष्ट करता है। यह रन, लिस्ट, क्रिएट, डिलीट, एंटर और रीच जैसी क्रियाओं को बदलता है, लेकिन न तो पूर्णांक को बदलता है और न ही पॉलिसी लेबल को पढ़ता है। एक 755 प्रोग्राम और निर्देशिका विभिन्न सामान्य क्रियाओं का वर्णन करते समय rwxr-xr-x साझा करते हैं। कोई भी स्पष्टीकरण अनिवार्य-नीति परिणामों की भविष्यवाणी नहीं करता है, इसलिए सत्यापित मोड बनाए रखें और प्लेटफ़ॉर्म लॉग से परामर्श लें।
अनिवार्य पहुंच-नियंत्रण संदर्भ और लॉग स्रोत सेट के बाहर हैं
आपूर्ति किया गया मोड माउंट विकल्प प्रकट नहीं कर सकता। कैलकुलेटर ऑक्टल या प्रतीकात्मक पाठ और एक वैकल्पिक पथ को स्वीकार करता है जिसका उपयोग केवल कमांड डिस्प्ले के लिए किया जाता है। यह कभी भी उस पथ को नहीं खोलता, उसके माउंट की पहचान नहीं करता, या कॉन्फ़िगरेशन को नहीं पढ़ता। स्रोत बाहरी चिंताओं के रूप में रीड-ओनली, नो-एक्ज़ीक्यूट और नो-सेटुइड व्यवहार को सूचीबद्ध करते हैं, लेकिन उन नीतियों के निदान के लिए कोई प्लेटफ़ॉर्म विवरण प्रदान नहीं करते हैं।
जेनरेट किए गए टेक्स्ट में एक ऑक्टल मोड, उद्धृत पथ और प्रदर्शित -R ध्वज शामिल हो सकता है, फिर भी कोई भी यह साबित नहीं करता है कि फ़ाइल सिस्टम अनुरोध का सम्मान करेगा। यहां तक कि एक विशेष-बिट मान जो पूरी तरह से राउंड-ट्रिप करता है, अदृश्य नियमों के तहत अप्रभावी हो सकता है। कमांड को एक समीक्षा आर्टिफैक्ट के रूप में मानें, फिर अनुमतियाँ बदलने या निष्पादन संभव होने का दावा करने से पहले लक्ष्य फ़ाइल सिस्टम को सत्यापित करें।
आपूर्ति किए गए मोड से माउंट विकल्प नहीं खोजे गए हैं
नेमस्पेस और सिस्कल फ़िल्टर मोड मॉडल में कहीं भी दिखाई नहीं देते हैं। इनपुट में कोई प्रक्रिया पहचान, कंटेनर संदर्भ, सिस्कल सूची या रनटाइम कॉन्फ़िगरेशन नहीं है। पेज यह नहीं जान सकता कि कोई प्रक्रिया समान पथ देखती है, अपेक्षित ऑब्जेक्ट तक पहुँचती है, या कॉल फ़िल्टर की गई है। वे प्रश्न मौलिक रूप से अनुमति त्रिगुणों के भीतर 4, 2, और 1 जोड़ने से भिन्न हैं।
सफल रूपांतरण से रनटाइम तंत्र का अनुमान न लगाएं। सत्यापन में विकृत अष्टक अंक, प्रतीकात्मक लंबाई और गलत स्थान वाले अक्षर शामिल हैं। एक वैध परिणाम का मतलब केवल यह है कि टेक्स्ट एक प्रतिनिधित्व योग्य मोड पर मैप होता है; यह निष्पादन परिवेश को मान्य नहीं करता है. क्योंकि उत्पन्न शेल टेक्स्ट निष्क्रिय है, नेमस्पेस और फ़िल्टर विश्लेषण के लिए अभी भी इन स्रोतों से अनुपस्थित रनटाइम साक्ष्य की आवश्यकता होती है।
नेमस्पेस और सिस्कल फ़िल्टर का प्रतिनिधित्व नहीं किया गया है
मोड से प्रारंभ करें क्योंकि यह कॉम्पैक्ट है और इसे अंदर या बाहर करना आसान है। मान का अनुवाद करें, प्रत्येक वर्ग का निरीक्षण करें, फ़ाइल को निर्देशिका से अलग करें, और किसी विशेष-बिट उपसर्ग को उजागर करें। अष्टक, प्रतीकात्मक, मैट्रिक्स, सारांश और स्पष्टीकरण के बीच समझौता पारंपरिक प्रश्न को अच्छी तरह से बनाता है। यह किसी गुम या अत्यधिक बिट को प्रकट कर सकता है, विशिष्ट प्राधिकार को नहीं।
केवल वास्तविक प्रणाली के साक्ष्य के साथ ही आगे बढ़ें। स्वामित्व, एCAल, विशेषताएँ, अनिवार्य नीति, माउंट, क्षमताएं, नामस्थान, फ़िल्टर और एप्लिकेशन नियम यहां नहीं खोजे गए हैं। पूर्वावलोकन किसी फ़ाइल को न तो पढ़ता है और न ही बदलता है। अनुशासित निष्कर्ष संकीर्ण है: आपूर्ति-मोड अंकगणित को स्थानीय रूप से व्यवस्थित करें, फिर इनकार को जाने बिना व्यापक chmod मूल्यों के माध्यम से साइकिल चलाने के बजाय बाहरी प्रवर्तन की जांच करें।