का उपयोग कर फ़ोल्डर/फ़ाइल एनटीएफएस अनुमतियों की जांच कर रहा है क्योंकि प्रश्न शीर्षक का सुझाव हो सकता है, मैं दिए गए फ़ाइल या फ़ोल्डर की ntfs अनुमतियों को जांचने के तरीके के बारे में जानना चाहूंगा (संकेत: वे हैं जिन्हें आप देखते हैं "सुरक्षा" टैब)। असल में, मुझे एक फ़ाइल या निर्देशिका (स्थानीय मशीन पर, या, रिमोट मशीन पर शेयर पर, प्राथमिकता से) के लिए पथ लेने की आवश्यकता है और उपयोगकर्ताओं/समूहों की सूची प्राप्त करें और इस फ़ाइल/फ़ोल्डर के लिए संबंधित अनुमतियां प्राप्त करें । आखिरकार, एप्लिकेशन एक निर्देशिका पेड़ को पार करने जा रहा है, प्रत्येक ऑब्जेक्ट के लिए अनुमतियां पढ़ रहा है और तदनुसार उन्हें संसाधित कर रहा है।पायथन
अब, मैं तरीके कि ऐसा करने के लिए की एक संख्या के बारे में सोच सकते हैं:
- पार्स Cacls.exe उत्पादन - आसानी से किया, लेकिन, जब तक कि im कुछ कमी, Cacls.exe केवल इन अनुमतियां देता है आर | डब्लू | सी | एफ (पढ़ें/लिखना/परिवर्तन/पूर्ण) का रूप, जो अपर्याप्त है (मुझे "सूची फ़ोल्डर सामग्री" जैसे अनुमतियां प्राप्त करने की आवश्यकता है, विस्तारित अनुमतियां भी)
- xcacls.exe या xcacls.vbs आउटपुट - हाँ, वे मुझे आवश्यक सभी अनुमतियां देते हैं, लेकिन वे डरावनी धीमी गति से काम करते हैं, स्थानीय सिस्टम फ़ाइल पर अनुमति प्राप्त करने के लिए xcacls.vbs को लगभग SECO सेकंड लगता है। इस तरह की गति अस्वीकार्य है
- win32security (यह, सही WinAPI इर्द-गिर्द घूमती?) - मुझे यकीन है कि इसे इस तरह से संभाला जा सकता है, लेकिन मैं नहीं बल्कि पहिया
एक नए अंदाज़ में नहीं होता हूँ कुछ और मैं कर रहा हूँ कुछ भी है यहाँ याद आ रही है?
मुझे लगता है कि win32security वह है जो आप चाहते हैं। यह वास्तव में विंडोज एपीआई के आसपास एक रैपर है। क्या आप चिंतित हैं कि यह बहुत कम स्तर है? –
ठीक है, अगर यह एकमात्र तरीका है, तो मैं Win32security का उपयोग करके भी ऐसा कर सकता हूं, लेकिन यह मेरे स्वयं के cacls रोलिंग की तरह होगा, इसलिए मैंने इसे पहिया reinventing के रूप में संदर्भित किया है। – shylent
खैर, सबसे पहले, सीएसीएल विन एपीआई करता है सब कुछ नहीं करता (जाहिर है, आप क्या करना चाहते हैं)। दूसरा, एपीआई को कॉल करना (बाइंडिंग के माध्यम से भी) शायद दूसरे प्रोग्राम में खोलने और आउटपुट को पार्स करने के लिए बहुत तेजी से होगा। –