हिन्दी

डेवलपर टूल · chmod कैलकुलेटर

अनुमति अस्वीकृत त्रुटियों के लिए chmod 777 गलत समाधान क्यों है?

· यह क्यों मायने रखती है

chmod Unix अभिगम नियंत्रण

ओवर-ब्रॉड मोड को एक विशिष्ट Unix अनुमति-बिट आरेख के रूप में दिखाया गया है
मूल ToolAcre वेक्टर चित्रण

777 सभी को सब कुछ देकर त्रुटि को गायब कर देता है। यह पोस्ट बताती है कि यह वास्तव में क्या देता है, इसका उपयोग कैसे किया जाता है, और वास्तविक समस्या का पता लगाने वाले नैदानिक ​​कदम क्या हैं।

त्रुटि गायब हो गई, प्रश्न नहीं - प्रोजेक्ट निर्देशिका पर chmod -R 777 ने अपलोड फॉर्म को ठीक कर दिया और कोई नहीं जानता कि क्यों

777 के बाद गायब होने वाली अनुमति त्रुटि केवल यह साबित करती है कि व्यापक पहुंच ने परिणाम बदल दिया है। इससे यह पता नहीं चलता कि कौन सा बिट महत्वपूर्ण था या क्या मोड बिट्स विफलता का कारण बने। कैलकुलेटर 777 को rwxrwxrwx पर मैप करता है। प्रत्येक वर्ग को पढ़ना, लिखना और निष्पादित करना प्राप्त होता है, जिसका व्यावहारिक अर्थ नियमित फ़ाइलों और निर्देशिकाओं के बीच भिन्न होता है।

उपयोगी साक्ष्य मूल मोड से बिट-स्तर का अंतर है। उस मोड के वर्ग त्रिगुणों को रिकॉर्ड करें, फिर सफलता को निदान कहे बिना 777 की तुलना करें। कैलकुलेटर कोई प्रक्रिया पहचान, स्वामी, समूह, ACL या अनिवार्य नीति नहीं जानता है। यह केवल यह उजागर करता है कि वर्कअराउंड के स्थायी सेटिंग बनने से पहले 777 कितनी पहुंच प्रदान करता है।

777 स्पष्ट शब्दों में क्या देता है - सिस्टम पर प्रत्येक उपयोगकर्ता पेड़ में कुछ भी पढ़ सकता है, संशोधित कर सकता है और (निर्देशिकाओं के लिए) बना या हटा सकता है।

मोड 777 प्रत्येक वर्ग को अधिकतम सामान्य अंक निर्दिष्ट करता है। प्रत्येक 7 4 को पढ़ता है, 2 लिखता है और 1 को निष्पादित करता है, जिससे rwxrwxrwx बनता है। फ़ाइलों के लिए, सभी वर्ग सामग्री को पढ़ सकते हैं, बदल सकते हैं और चला सकते हैं। निर्देशिकाओं के लिए, वे प्रविष्टियों को सूचीबद्ध कर सकते हैं, संशोधित कर सकते हैं और नाम से दर्ज कर सकते हैं। प्रत्येक सामान्य चेकबॉक्स चयनित है.

"बाकी सभी" विशेष रूप से अंतिम अनुमति ट्रिपल से मेल खाते हैं, किसी ज्ञात खाते से नहीं। पहचान और स्वामित्व के बिना, कैलकुलेटर यह निर्धारित नहीं कर सकता कि कोई प्रक्रिया स्वामी, समूह या अन्य का उपयोग करती है या नहीं। 777 की 775 या 755 के साथ तुलना करने पर भी प्रत्येक हटाए गए लेखन बिट का सटीक रूप से पता चलता है, "खुले" जैसे अस्पष्ट विवरणों को दृश्य वर्ग-स्तरीय अंतरों से बदल दिया जाता है।

क्षति कैसे होती है - एक समझौता की गई वेब प्रक्रिया, एक बुरी तरह से लिखी गई स्क्रिप्ट, या कोई अन्य किरायेदार कॉन्फ़िगरेशन को संपादित करना या वेब शेल को छोड़ना

कैलकुलेटर दिए गए बिट्स को उजागर करता है लेकिन शोषण पथ साबित नहीं कर सकता। एक विश्व-लेखन योग्य फ़ाइल एक चेतावनी ट्रिगर करती है कि कोई भी खाता अपनी सामग्री बदल सकता है। चिपचिपाहट रहित 777 निर्देशिका चेतावनी देती है कि प्रविष्टियाँ बनाई या हटाई जा सकती हैं। ये परिणाम मोड और लक्ष्य प्रकार से आते हैं, न कि इस बात का सबूत कि कोई अन्य खाता मौजूद है या कार्य कर रहा है।

देखी गई घटनाओं से संभावित परिणामों को अलग करें। पेज किसी भी प्रक्रिया, किरायेदार, स्क्रिप्ट, कॉन्फ़िगरेशन या वेब रूट का निरीक्षण नहीं करता है, और कुछ भी निष्पादित नहीं करता है। यह स्थापित कर सकता है कि लेखन एक वर्ग के लिए सक्षम है और समीक्षा के लिए एक व्यापक उम्मीदवार को चिह्नित कर सकता है। समझौते, इंजेक्ट की गई फ़ाइलों या वास्तविक दुरुपयोग के दावों के लिए पर्यावरणीय साक्ष्य की आवश्यकता होती है जिसे कैलकुलेटर कभी एकत्र नहीं करता है।

कैलकुलेटर दिए गए बिट्स को उजागर करता है लेकिन शोषण पथ प्रदर्शित नहीं कर सकता है

पहचान और स्वामित्व का निदान इस मार्ग के बाहर होता है। साधारण बिट्स को स्वामी, समूह और अन्य के रूप में समूहीकृत किया जाता है, लेकिन कैलकुलेटर केवल एक मोड पूर्णांक और लक्ष्य प्रकार प्राप्त करता है। मालिक के नाम, समूह सदस्यता या प्रक्रिया क्रेडेंशियल्स के बिना, यह तय नहीं कर सकता कि कौन सा ट्रिपल असफल पहुंच प्रयास को नियंत्रित करता है, भले ही यह लगातार हर ट्रिपल को डीकोड करता है।

यही कारण है कि सभी वर्गों का विस्तार करना एक कमजोर निदान है। एक सत्यापित समूह बिट तब मायने रख सकता है जब किसी प्रक्रिया को समूह पहुंच का उपयोग करना चाहिए; गलत स्वामित्व किसी भी मोड को गलत उपाय संपादित कर सकता है। उम्मीदवार परिवर्तनों को अलग करने के लिए मैट्रिक्स का उपयोग करें, फिर पहचान और स्वामित्व को बाहरी रूप से सत्यापित करें। ब्राउज़र प्रतिनिधित्व को तय करता है, प्राधिकरण को नहीं।

पहचान और स्वामित्व का निदान इस मार्ग के बाहर होना चाहिए

अपलोड निर्देशिका के लिए, किसी को निर्धारित किए बिना उम्मीदवारों की तुलना करें। मोड 777 प्रत्येक क्लास निर्देशिका को पढ़ने, लिखने और निष्पादित करने की सुविधा देता है। मोड 775 समूह-लेखन को संरक्षित करते हुए अन्य-लेखन को हटा देता है। मोड 755 मालिक के लिए लिखना सुरक्षित रखता है। कैलकुलेटर इन अंतरों को प्रदर्शित करता है, लेकिन यह नहीं जान सकता कि अपलोडर किस वर्ग का उपयोग करता है या उसे किन परिचालनों की आवश्यकता है।

उम्मीदवारों के बीच सबसे छोटे परिवर्तन को रिकॉर्ड करें। 777 से 775 तक, केवल अन्य-लेखन गायब हो जाता है; 775 से 755 तक, समूह-लेखन भी गायब हो जाता है। निर्देशिका लेखन प्रविष्टियों को बनाने, नाम बदलने और हटाने को नियंत्रित करता है, जबकि निष्पादन प्रविष्टि और नाम लुकअप को नियंत्रित करता है। उपयुक्तता अभी भी स्वामित्व, पहचान, एCAल और कैलकुलेटर के बाहर एप्लिकेशन व्यवहार पर निर्भर करती है।

व्यावहारिक उदाहरण: उम्मीदवार अपलोड-निर्देशिका मोड की तुलना किCAक को निर्धारित किए बिना करें

प्रोग्राम-विशिष्ट इनकार नियमों के लिए उस प्रोग्राम के दस्तावेज़ीकरण और रनटाइम साक्ष्य की आवश्यकता होती है। chmod स्रोतों में कोई SSH नीति, वेब-सर्वर नियम या एप्लिकेशन कॉन्फ़िगरेशन नहीं है। वे यह साबित नहीं कर सकते कि सॉफ़्टवेयर 777 को अस्वीकार करता है, 755 को स्वीकार करता है या किसी अन्य मान की आवश्यकता है। कैलकुलेटर केवल मोड परिवर्तित करता है और उनके सामान्य फ़ाइल या निर्देशिका संचालन का वर्णन करता है।

यदि सॉफ़्टवेयर अनुमतियों को बहुत व्यापक बताता है, तो प्रेक्षित मोड दर्ज करें और उसके समूह और अन्य बिट्स का निरीक्षण करें। फिर कुछ भी बदलने से पहले उस कार्यक्रम के लिए आधिकारिक साक्ष्य से परामर्श लें। उत्पन्न chmod लाइन निष्क्रिय पाठ है। ऑक्टल और प्रतीकात्मक डिस्प्ले का मिलान रूपांतरण स्थिरता की पुष्टि करता है, न कि कार्यक्रम नीति या भविष्य की परिचालन सफलता के अनुपालन की।

प्रोग्राम-विशिष्ट इनकार नियमों के लिए उस प्रोग्राम के दस्तावेज़ीकरण की आवश्यकता होती है

अनिवार्य पहुंच-नियंत्रण अस्वीकरण chmod और कैलकुलेटर के बाहर बैठता है। कोई स्रोत SELinux, AppArmor या किसी अन्य नीति इंजन पर प्रश्न नहीं उठाता। इसलिए मोड 777 पूरी तरह से प्रस्तुत हो सकता है जबकि असंबंधित नियंत्रण अदृश्य रहता है। पेज उस शर्त को स्वामित्व, ACL, भंडारण या एप्लिकेशन प्रतिबंधों से अलग नहीं कर सकता; सभी कैलकुलेटर निष्कर्षों के बजाय बाहरी संभावनाएं हैं।

किसी व्यापक मोड को प्रत्येक प्राधिकरण परत के सार्वभौमिक परीक्षण के रूप में न मानें। कैलकुलेटर का साक्ष्य मालिक, समूह और अन्य बिट्स प्लस सेतुइड, सेटगिड और स्टिकी के साथ समाप्त होता है। यह चयनित अनुमतियाँ दिखाता है, न कि कोई ऑपरेशन विफल या सफल क्यों होता है। देखे गए मोड को सुरक्षित रखें, सटीक बिट्स की तुलना करें और बाहरी नीति की स्वतंत्र रूप से जांच करें।

अनिवार्य नीति अस्वीकरण chmod के बाहर और कैलकुलेटर के बाहर हैं

किसी मोड का विस्तार करने से पहले प्रत्येक अनुदान को समझें। 777 दर्ज करें और सभी नौ सामान्य अनुमतियाँ स्पष्ट हो जाएँगी। समूह और अन्य लेखन को हटाने के लिए 755 की तुलना करें, या अन्य लेखन को हटाते समय समूह लेखन को बनाए रखने के लिए 775 की तुलना करें। ये तथ्यात्मक परिवर्तन किसी अज्ञात मालिक, प्रक्रिया या कार्यभार के लिए कोई मोड चुने बिना प्रत्येक उम्मीदवार की पहुंच की सतह को प्रकट करते हैं।

ब्राउज़र के बाहर पहचान और स्वामित्व का समाधान करें, फिर केवल इच्छित बिट्स को सत्यापित करें। उचित फ़ाइल या निर्देशिका स्पष्टीकरण का उपयोग करके पुष्टि करें कि ऑक्टल, प्रतीकात्मक पाठ, सारांश और चेकबॉक्स सहमत हैं। पेज विकृत इनपुट को अस्वीकार करता है, लेकिन न तो chmod चलाता है और न ही समझौता की पहचान करता है। अंतिम प्राधिकरण निर्णय निरीक्षण किए गए वातावरण से संबंधित हैं।