हिन्दी

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

chmod बनाम चाउन: मोड बदलना अक्सर गलत लीवर क्यों होता है

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

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

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

मोड बिट्स का मतलब केवल एक मालिक और एक समूह से संबंधित कुछ है। यह पोस्ट दो कमांड को अलग करती है और दिखाती है कि त्रुटि और प्रक्रिया पहचान से यह कैसे तय किया जाए कि आपको वास्तव में किसकी आवश्यकता है।

दो आदेश, एक त्रुटि - अनुमति अस्वीकृत को इस महीने तीन अलग-अलग chmod और chown लाइनों के साथ तीन बार 'ठीक' किया गया है

chmod और chown अलग-अलग जानकारी को संबोधित करते हैं, तब भी जब दोनों एक अनुमति त्रुटि के निकट दिखाई देते हैं। कैलकुलेटर मालिक, समूह और अन्य के अलावा विशेष बिट्स के लिए अनुमति बिट्स मॉडल करता है। इसका कोई वर्तमान स्वामी या समूह नहीं है और यह कोई स्वामित्व संचालन नहीं करता है। इसलिए एक मोड का सही ढंग से अनुवाद किया जा सकता है जबकि पहचान संबंध अज्ञात और अप्रयुक्त रहता है।

पहले प्रश्नों को अलग कर लें. “750 किसकी अनुमति देता है?” जवाबदेह है: मालिक को आरडब्ल्यूएक्स मिलता है, समूह को आर-एक्स मिलता है और अन्य को कुछ नहीं मिलता है। “इसका मालिक कौन है?” और "कौन सी पहचान प्रक्रिया चलाती है?" बाहरी साक्ष्य की आवश्यकता है. पहचान को हल करने से पहले एक मोड को संपादित करने से गलत वर्ग का विस्तार हो सकता है; सिंक्रनाइज़ दृश्य chmod और स्वामित्व परिवर्तनों के बीच चयन नहीं कर सकते।

पहले स्वामित्व, फिर मोड - किसी भी बिट को देखने से पहले कर्नेल किसी प्रक्रिया के लिए मालिक, समूह या अन्य को कैसे चुनता है

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

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

वर्ग चयन पहचान पर निर्भर करता है, जो कैलकुलेटर को प्राप्त नहीं होता है

स्वामित्व टूल बदलते हैं कि मालिक या समूह संबंधों पर कौन कब्जा करता है, जबकि chmod उन वर्गों से जुड़ी अनुमतियों को बदलता है। यह कैलकुलेटर केवल chmod के पक्ष को लागू करता है। यह ऑक्टल या प्रतीकात्मक chmod टेक्स्ट उत्पन्न करता है और कभी भी chown या chgrp उत्सर्जित नहीं करता है। यह किसी फ़ाइल को भी नहीं बदलता है; पथ फ़ील्ड केवल बाहरी समीक्षा के लिए उद्धृत पूर्वावलोकन बनाता है।

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

साझा-समूह पैटर्न - निर्देशिका पर chgrp प्लस सेटगिड प्लस 2775 दो उपयोगकर्ताओं के लिए मानक उत्तर के रूप में, जिन्हें दोनों को लिखने की आवश्यकता है

साझा-समूह वर्कफ़्लो के लिए बाहरी स्वामित्व टूल और नीति की आवश्यकता होती है। प्रीसेट 775 को "समूह के साथ साझा" लेबल किया गया है क्योंकि समूह-लेखन सक्षम है। प्रीसेट 2775 सेटगिड जोड़ता है, rwxrwsr-x प्रस्तुत करता है; निर्देशिकाओं के लिए, नई फ़ाइलें निर्देशिका के समूह को प्राप्त करती हैं। ये बिट विवरण पूर्ण सहयोग डिज़ाइन या परिनियोजन अनुशंसा का गठन नहीं करते हैं।

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

साझा-समूह वर्कफ़्लो के लिए बाहरी स्वामित्व टूल और नीति की आवश्यकता होती है

कहीं और स्वामित्व का समाधान करने के बाद, निर्देशिका मोड 750 का निरीक्षण करें। मालिक को पढ़ना, लिखना और निष्पादित करना प्राप्त होता है; समूह को पढ़ना और निष्पादित करना प्राप्त होता है; दूसरे को कुछ नहीं मिलता. समूह सूचीबद्ध और दर्ज कर सकता है लेकिन प्रविष्टियाँ बना, नाम बदल या हटा नहीं सकता। कैलकुलेटर वास्तविक निर्देशिका या खाते का निरीक्षण किए बिना rwxr-x--- और u=rwx,g=rx,o= प्रस्तुत करता है।

नियमित फ़ाइल के लिए 640 का अलग से निरीक्षण करें। यह rw-r----- हो जाता है: मालिक पढ़ता और लिखता है, समूह पढ़ता है, और दूसरे के लिए कुछ नहीं। पेज दोनों परिणाम प्रदर्शित करता है लेकिन उन्हें पुनरावर्ती रूप से निर्दिष्ट नहीं कर सकता, परिनियोजन खाते की पहचान नहीं कर सकता या सेवा समूह नहीं चुन सकता। /var/www के लिए उपयुक्तता का दावा करने के लिए कार्यभार और पहचान प्रमाण की आवश्यकता होती है जो यहां अनुपस्थित हैं।

व्यावहारिक उदाहरण: स्वामित्व का समाधान कहीं और होने के बाद 750 और 640 का निरीक्षण करें

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

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

प्रक्रिया पहचान खोज इस ब्राउज़र टूल के बाहर है

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

गुम इनपुट निदान और उपचार दोनों को सीमित करते हैं। मार्ग chmod, chown, ACL परिवर्तनों या मैपिंग सुधारों में से चयन नहीं कर सकता। यह आपूर्ति किए गए आधार मोड को डीकोड कर सकता है और एस, एस, टी और टी जैसे विशेष अक्षरों को प्रस्तुत कर सकता है। इसे एक साक्ष्य परत के रूप में मानें, न कि तीसरे पक्ष या कंटेनर पहुंच के बारे में सबूत के रूप में।

टेकअवे: बिट्स से पहले पहचान तय करें - फिर बिट्स को पहचान की आवश्यकता के अनुसार सटीक बनाने के लिए चामॉड कैलकुलेटर का उपयोग करें

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

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