माता-पिता के ACL को बदलते समय Windows सभी NTFS बाल वस्तुओं को क्यों संसाधित करता है?


10

माता-पिता के ACL को बदलते समय Windows सभी NTFS बाल वस्तुओं को क्यों संसाधित करता है?

मैं इस व्यवहार की उम्मीद करूंगा यदि मैंने "सभी चाइल्ड ऑब्जेक्ट अनुमतियों को बदलें ..." बॉक्स को चेक किया था, लेकिन तब भी जब उस बॉक्स को अनियंत्रित छोड़ दिया जाता है, तो विंडोज सभी बच्चों को प्रोसेस करेगा।


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

जवाबों:


10

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

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

नॉवेल नेटवेअर को याद करने के लिए हममें से जो बहुत पुराने हैं, उन्हें याद होगा कि यह नेटवेअर से बड़े अंतरों में से एक था क्योंकि नेटवेअर में अनुमतियों का उत्तराधिकार (है?) गतिशील है। उस समय बहुत बहस हुई थी कि कौन सा दृष्टिकोण बेहतर है, हालांकि इतिहास ने इस मुद्दे को प्रस्तुत किया है। डायनेमिक ACLs को फ़ाइल खोलने के लिए किए गए प्रयास के समय, हर पैरेंट डायरेक्टरी के ACL की जाँच करने के लिए OS की आवश्यकता होती है, लेकिन ACL को बदलना त्वरित है। विंडोज में फ़ाइल खोलने के लिए केवल एक ही ACL की जाँच करनी होती है, लेकिन जैसा कि आपने पाया है इसका मतलब है कि एक निर्देशिका को बदलना ACL धीमा हो सकता है।


1
यह सही समझ में आता है। ACL को लिखे जाने की तुलना में बहुत अधिक पढ़ा जाता है, इसलिए यह रेयर लिखने के उपयोग के मामले में अधिक जटिलता की कीमत पर तेजी से पढ़ने के लिए "विरासत में मिली कीमत" को कैश करने के लिए समझ में आता है।
अलेक्जेंडर -

@Alexander: मुझे समझ में नहीं आता है कि इस जटिलता को अंतिम उपयोगकर्ता के सामने क्यों लाना है। क्यों नहीं झूठ बोलते हैं और अंतिम उपयोगकर्ता को "यह गतिशील है" लेकिन आंतरिक रूप से चीजों को कैश करते हैं?
केविन

@ केविन - क्योंकि अनुमतियों के प्रचार में कुछ समय लग सकता है और उस समय की अवधि में आप अनुमतियों का प्रवर्तन वैसा नहीं कर सकते जैसा कि आप उम्मीद करते हैं?
दाविद्बक

13

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

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


5

डिफ़ॉल्ट रूप से, चाइल्ड फ़ोल्डर पैरेंट फ़ोल्डर से अनुमतियाँ प्राप्त करते हैं। जब आप मूल फ़ोल्डर (इस फ़ोल्डर, सबफ़ोल्डर और फ़ाइलों) पर अनुमतियों को जोड़ / संशोधित कर रहे हैं, तब डिफ़ॉल्ट गुंजाइश को मानते हुए, तब माता-पिता में अनुमतियों के परिवर्तन को प्रतिबिंबित करने के लिए सभी बाल फ़ोल्डर अपडेट किए जाएंगे।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.