हिन्दी

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

Windows, macOS, FAT और नेटवर्क शेयर पर chmod: जहां मोड बिट्स रुकते हैं

· पेजभूमि

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

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

मोड बिट्स एक Unix विचार है, और अन्य फ़ाइल सिस्टम या तो उन्हें नकली बनाते हैं या उन्हें छोड़ देते हैं। यह पोस्ट बताती है कि NTFS, FAT, macOS और SMB या NFS माउंट पर अनुमतियों का क्या होता है और git कैसे प्रतिक्रिया करता है।

Git प्रत्येक फ़ाइल को संशोधित के रूप में दिखाता है - एक अलग फ़ाइल सिस्टम पर क्लोनिंग के बाद एकमात्र परिवर्तन मोड 100644 से 100755 है

100644 से 100755 में Git परिवर्तन एक सामान्य अंतर को उजागर करता है: 644 में निष्पादन का अभाव है, जबकि 755 में इसे सभी तीन वर्गों के लिए शामिल किया गया है। अनुगामी मानों को डिकोड करने से rw-r--r-- और rwxr-xr-x प्राप्त होता है। कैलकुलेटर यह नहीं बता सकता कि Git ने परिवर्तन की सूचना क्यों दी, किस प्लेटफ़ॉर्म ने इसे उत्पन्न किया, या क्या फ़ाइल सिस्टम और रिपॉजिटरी सेटिंग्स ने अवलोकन को प्रभावित किया।

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

Git में एक मोड परिवर्तन को यहां डिकोड किया जा सकता है लेकिन किसी प्लेटफ़ॉर्म को जिम्मेदार नहीं ठहराया जा सकता है

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

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

विंडोज़ ACL और WSL मेटाडेटा व्यवहार के लिए प्लेटफ़ॉर्म स्रोतों की आवश्यकता है

FAT-फैमिली माउंट मास्क इस कार्यान्वयन से बाहर हैं। पैनल में कोई umask, fmask, dmask, माउंट-ऑप्शन या फ़ाइल सिस्टम फ़ील्ड नहीं है। यह रिपोर्ट किए गए मोड को मालिक, समूह और अन्य बिट्स में विभाजित कर सकता है, लेकिन उस मोड को कॉन्फ़िगरेशन से प्राप्त नहीं कर सकता है या यह साबित नहीं कर सकता है कि FAT या exFAT ने इसे कैसे बनाया। व्यापक व्यवहार संबंधी दावों के लिए बाहरी प्लेटफ़ॉर्म स्रोतों की आवश्यकता होती है।

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

FAT-फैमिली माउंट मास्क कार्यान्वयन से बाहर हैं

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

एक साफ़ 755 को देखते हुए, कैलकुलेटर rwxr-xr-x को प्रस्तुत करता है और इसे चयनित लक्ष्य के लिए समझाता है। निर्देशिका निष्पादन का अर्थ है नामित प्रविष्टियों में प्रवेश करना और उन तक पहुंचना; फ़ाइल निष्पादन का अर्थ है प्रोग्राम चलाना। वह कार्यान्वयन-समर्थित भेद प्लेटफ़ॉर्म एट्रिब्यूशन से बचता है। किसी भी अतिरिक्त macOS एक्सेस नियम, नोटेशन, या मोड बिट्स के साथ इंटरैक्शन के लिए इस रिपॉजिटरी सामग्री में अनुपलब्ध विशिष्ट साक्ष्य की आवश्यकता होती है।

इस मार्ग से अतिरिक्त macOS मेटाडेटा को पार्स नहीं किया जाता है

SMB और NFS पहचान मानचित्रण या मोड संश्लेषण कार्यान्वयन के बाहर है। कन्वर्टर किसी सर्वर से संपर्क नहीं करता है, कोई माउंट कॉन्फ़िगरेशन नहीं पढ़ता है, कोई UID हल नहीं करता है, और मालिक या समूह की पहचान नहीं कर सकता है। इसकी कक्षाएं पूर्णांक से प्राप्त अमूर्त स्लॉट हैं। नेटवर्क माउंट द्वारा रिपोर्ट किया गया मोड डिकोड करने योग्य रहता है, लेकिन विस्तृत नेटवर्क-फ़ाइल सिस्टम व्यवहार यहां असमर्थित है।

यह सीमा कैटेगरी त्रुटि को रोकती है। मोड 775 का अर्थ है कि स्वामी और समूह के पास rwx है जबकि अन्य के पास r-x है। यह दूरस्थ स्वामित्व, समूह सदस्यता, पहचान मानचित्रण, या किसी सर्वर ने डिस्प्ले को संश्लेषित किया है या नहीं, प्रकट नहीं करता है। यहां प्रस्तुत बिट्स को सत्यापित करें, फिर प्राधिकरण का निर्णय लेने से पहले वास्तविक वातावरण से निर्यात, क्लाइंट, सर्वर और पहचान साक्ष्य इकट्ठा करें।

SMB और NFS पहचान या मोड संश्लेषण कार्यान्वयन के बाहर है

जब Git मोड परिवर्तन की रिपोर्ट करता है, तो नीति को संशोधित करने से पहले मानों को डिकोड करें। 100644 और 100755 के लिए, 644 और 755 का उपयोग करें: rw-r--r-- rwxr-xr-x बन जाता है। स्वामी, समूह और अन्य प्रत्येक लाभ निष्पादित करते हैं क्योंकि उनका अंक भार 1 प्राप्त करता है। यह Git, प्लेटफ़ॉर्म या फ़ाइल सिस्टम को कोई कारण बताए बिना अर्थ संबंधी अंतर स्थापित करता है।

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

व्यावहारिक उदाहरण: रिपॉजिटरी नीति बदलने से पहले मोड Git रिपोर्ट को डिकोड करें

विंडोज़ अनुमति आदेश एक अलग मॉडल से संबंधित हैं। यह टूल ऑक्टल मान या u=rw,g=r,o=r जैसे chmod फॉर्म उत्सर्जित करता है। यह न तो विंडोज़ सिंटैक्स को पार्स करता है और न ही तीन Unix कक्षाओं को विंडोज़ ACL पर मैप करता है। कोई भी प्रशंसनीय दिखने वाला अनुवाद आविष्कार होगा, क्योंकि बारह पारंपरिक बिट्स किसी अन्य प्राधिकरण प्रणाली द्वारा प्रस्तुत प्रत्येक पहचान और पहुंच प्रविष्टि को संरक्षित नहीं कर सकते हैं।

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

विंडोज़ सिंटैक्स और ऑब्जेक्ट स्टोरेज अलग-अलग मॉडल बने हुए हैं

chmod का उपयोग करने से पहले पुष्टि करें कि किस परत के पास अनुमति सत्य है। Git, माउंट या किसी अन्य प्लेटफ़ॉर्म द्वारा प्रस्तुत एक मोड को स्वामी, समूह, अन्य और विशेष बिट्स में अनुवादित किया जा सकता है। सत्यापन विकृत अंकों और प्रतीकात्मक स्थितियों को पकड़ता है, जबकि s, S, t, और T विशेष स्थिति को संरक्षित करते हैं। रूपांतरण मूल्य की व्याख्या करता है, न कि उसके मूल या अधिकार की।

अंतिम समीक्षा में अंकगणित को पर्यावरण से अलग किया जाना चाहिए। मोड को सत्यापित करें, सटीक भिन्न वर्ग और बिट को रिकॉर्ड करें, और लक्ष्य को फ़ाइल या निर्देशिका के रूप में पहचानें। फिर मूल स्रोतों के साथ प्लेटफ़ॉर्म, फ़ाइल सिस्टम, रिपॉजिटरी सेटिंग्स, पहचान, एCAल और नीतियों का निरीक्षण करें। पेज की संकीर्ण भूमिका मूल्यवान है: क्रॉस-प्लेटफ़ॉर्म प्रवर्तन का निदान करने का दिखावा किए बिना भरोसेमंद Unix-मोड व्याख्या।