2012-05-09 4 views
6

मैंने हाल ही में हमारे फाइल सर्वर पर सुरक्षा को फिर से डिजाइन किया है, जो कि पूर्ण नियंत्रण को संशोधित करने के लिए सबसे अधिक था। अब मेरे डेवलपर मुझे बता रहे हैं कि जब भी वे फ़ाइल खोलने के लिए GENERIC_ALL का उपयोग करते हैं (उदाहरण के लिए CreateFile() के साथ), उन्हें एक एक्सेस अस्वीकृत संदेश प्राप्त होता है।GENERIC_ALL और फ़ोल्डर/फ़ाइल एसीएल? GENERIC_ALL वास्तव में क्या करता है?

शोध के बाद, कुछ भी संकेत नहीं आया कि GENERIC_ALLGENERIC_EXECUTE + GENERIC_WRITE + GENERIC_READ से अधिक था; हालांकि, ऐसा नहीं लगता है, क्योंकि एक डेवलपर तीन निरंतर मानों को जोड़ने में सक्षम था, और इसे CreateFile() पर उपयोग करें।

तो, मैं पूछता हूं ... GENERIC_ALL वास्तव में क्या करता है?

धन्यवाद,

मैट

+0

मशीन चमत्कार में कुछ भयानक भूत की तरह, मैंने आज इस बारे में सोचा जब मैं टोर्टोइसएचजी के साथ एक टाइमआउट मुद्दे पर आया जो उपयोगकर्ता के शेयर पर फाइलें बनाने में सक्षम नहीं था। जिसने अभी भी पोस्ट अपडेट किया है, मैं आपको एक देनदार हूं। – mbrownnyc

उत्तर

4

GENERIC_ALL अधिकारों का उपयोग ऐसी बातें WRITE_DAC (अनुमतियों को परिवर्तित करने के लिए) के रूप में और WRITE_OWNER (मालिक बदलने के लिए) सहित हर संभव पहुँच ठीक है, शामिल हैं। File Security and Access Rights पृष्ठ दिखाता है कि GENERIC_* फ़ाइलों के लिए विशिष्ट पहुंच अधिकारों तक पहुंच अधिकार मानचित्र कैसे दिखाता है। File Access Rights Constants पृष्ठ फ़ाइलों के लिए सभी संभावित पहुंच अधिकार दिखाता है (संभवतः GENERIC_ALL का उपयोग होने पर सभी से अनुरोध किया जाएगा)।

आपको अपने डेवलपर्स को केवल उस स्तर के स्तर का अनुरोध करने के लिए प्रोत्साहित करना चाहिए जिसकी उन्हें वास्तव में आवश्यकता है। शायद, उदाहरण के लिए, एक ही समय में GENERIC_EXECUTE और GENERIC_WRITE दोनों के लिए खोला गया फ़ाइल है।

3

GENERIC_ALL का अर्थ है "पहुँच के हर संभव स्तर" (फ़ाइलों के लिए, इस नाम FILE_ALL_ACCESS है)। चूंकि आपने पूर्ण नियंत्रण हटा दिया है, इसलिए GENERIC_ALL के लिए खोलने का प्रयास एक्सेस अस्वीकृत के साथ विफल हो जाएगा क्योंकि (उदाहरण के लिए) WRITE_DAC अब प्रदान नहीं किया गया है।

संबंधित मुद्दे