2011-03-25 10 views
359

यहां आईआईएस 7.5 और एएसपी.नेट के साथ एक मुद्दा है जिसे मैं शोध कर रहा हूं और कहीं भी नहीं मिला हूं। किसी भी तरह की सहायता का स्वागत किया जाएगा।आईआईएस AppPoolIdentity और फ़ाइल सिस्टम लेखन अनुमतियाँ

मेरा प्रश्न है: आईआईएस 7.5 में एएसपी.नेट का उपयोग करके, आईआईएस और/या ऑपरेटिंग सिस्टम वेब ट्रस्ट को पूर्ण विश्वास के तहत चलते समय C:\dump जैसे फ़ोल्डर में लिखने की अनुमति देता है? यह कैसे है कि मुझे एप्लिकेशन पूल उपयोगकर्ता के लिए स्पष्ट रूप से लेखन पहुंच जोड़ने की आवश्यकता नहीं है (इस मामले में ApplicationPoolIdentity)?

इतना मैं जानता हूँ कि:

  • आईआईएस 7.5 में, एक आवेदन पूल के लिए डिफ़ॉल्ट पहचान ApplicationPoolIdentity है।
  • ApplicationPoolIdentity "आईआईएस APPPOOL \ AppPoolName" नामक एक विंडोज उपयोगकर्ता खाते का प्रतिनिधित्व करता है, जिसे एप्लिकेशन पूल बनाया गया है, जहां AppPoolName एप्लिकेशन पूल का नाम है।
  • "आईआईएस APPPOOL \ AppPoolName" उपयोगकर्ता डिफ़ॉल्ट रूप से IIS_IUSRS समूह का सदस्य है।
  • यदि आप पूर्ण ट्रस्ट के तहत चल रहे हैं, तो आपका वेब एप्लिकेशन फ़ाइल सिस्टम के कई क्षेत्रों में लिख सकता है (C:\Users, C:\Windows, आदि जैसे फ़ोल्डरों को छोड़कर)। उदाहरण के लिए, आपके एप्लिकेशन को कुछ फ़ोल्डर्स, जैसे C:\dump पर लिखने की पहुंच होगी।
  • डिफ़ॉल्ट रूप से, IIS_IUSRS समूह को C:\dump पर पढ़ने या लिखने के लिए नहीं दिया गया है (कम से कम उस एक्सेस तक नहीं जो विंडोज एक्सप्लोरर में "सुरक्षा" टैब के माध्यम से दिखाई दे रहा है)।
  • यदि आप IIS_IUSRS पर पहुंच लिखने से इनकार करते हैं, तो फ़ोल्डर (जैसे अपेक्षित) पर लिखने का प्रयास करते समय आपको सुरक्षा अपवाद प्राप्त होगा।

तो, उस खाते में सभी को ले जा रहा है, कैसे "IIS AppPool \ AppPoolName" उपयोगकर्ता के लिए दी गई लिखने है? W3wp.exe प्रक्रिया इस उपयोगकर्ता के रूप में चलती है, तो इस उपयोगकर्ता को उस फ़ोल्डर को लिखने की अनुमति क्यों मिलती है, जिस पर यह स्पष्ट पहुंच नहीं है?

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

उत्तर

375

ApplicationPoolIdentityUsers समूह के साथ-साथ IIS_IUSRS समूह की सदस्यता सौंपा गया है। पहली नज़र में यह कुछ हद तक चिंताजनक लग सकता है, हालांकि Users समूह में कुछ हद तक सीमित एनटीएफएस अधिकार हैं।

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

अपने c:\dump फ़ोल्डर में लिखने में सक्षम होने के बारे में आपके अवलोकनों के संबंध में।

enter image description here

देखें कि विशेष अनुमति c:\ से विरासत में मिला जा रहा है:

enter image description here

कि आप उन्नत सुरक्षा सेटिंग्स में अनुमतियाँ पर एक नज़र डालें, तो आप निम्न देख सकते हैं कारण आपकी साइट के ApplicationPoolIdentity पढ़ सकते हैं और उस फ़ोल्डर में लिखें। यह अधिकार c:\ ड्राइव से विरासत में प्राप्त किया जा रहा है।

एक साझा वातावरण जहां आप संभवतः कई सौ साइटों है, अपने स्वयं के अनुप्रयोग पूल और अनुप्रयोग पूल पहचान के साथ प्रत्येक, तो आप उस Users समूह हटा दिया गया है एक फ़ोल्डर या मात्रा में साइट फ़ोल्डरों संग्रहीत करेंगे और अनुमति के इस तरह के सेट में कि केवल प्रशासकों और सिस्टम खाते में पहुंच है (विरासत के साथ)।

तब आप प्रत्येक IIS AppPool\[name] पर आवश्यक अनुमतियों को व्यक्तिगत रूप से आवंटित करेंगे, इसके साइट रूट फ़ोल्डर पर आवश्यक है।

आपको यह भी सुनिश्चित करना चाहिए कि आपके द्वारा बनाई गई कोई भी फ़ोल्डर जहां आप संभावित रूप से संवेदनशील फ़ाइलों या डेटा को संग्रहीत करते हैं, Users समूह हटा दिया गया है। आपको यह भी सुनिश्चित करना चाहिए कि आपके द्वारा इंस्टॉल किए गए कोई भी एप्लिकेशन संवेदनशील डेटा को उनके c:\program files\[app name] फ़ोल्डर में संग्रहीत नहीं करते हैं और वे इसके बजाय उपयोगकर्ता प्रोफ़ाइल फ़ोल्डर्स का उपयोग करते हैं।

तो हाँ, पहली नज़र में ऐसा लगता है कि ApplicationPoolIdentity के मुकाबले अधिक अधिकार हैं, लेकिन वास्तव में इसके समूह सदस्यता के मुकाबले इसका कोई अधिकार नहीं है।

एक ApplicationPoolIdentity के समूह सदस्यता SysInternals Process Explorer tool का उपयोग कर जांच की जा सकती। कार्यकर्ता प्रक्रिया है कि आवेदन पूल पहचान में आपकी रुचि है साथ चल रहा है हैं (आपको प्रदर्शित करने के लिए स्तंभों की सूची को User Name स्तंभ जोड़ने के लिए करना होगा:

enter image description here

उदाहरण के लिए, मैं एक पूल है । यहाँ की प्रक्रिया के लिए संपत्तियों पर 900300 जो IIS APPPOOL\900300 का एक आवेदन पूल पहचान है नामित राइट क्लिक करके और सुरक्षा टैब का चयन हम देखते हैं:

enter image description here

हमदेख सकते हैंUsers समूह का सदस्य है।

+0

@Kev [+1] मैं यहाँ एप्लिकेशन पूल पहचान के लिए NTFS अनुमतियाँ regardin एक समान प्रश्न पोस्ट: http://stackoverflow.com/questions/11232675/applications-apppool-permisions-on-parent-site- फ़ोल्डर-संरचना - यदि आप एक नज़र डालेंगे तो मैं आभारी रहूंगा। –

+0

@ one.beat.consumer - क्षमा करें, मैंने आपकी टिप्पणी कभी नहीं देखी। आप अभी भी उस सवाल से फंस गए हैं? – Kev

+0

@ केव - हाँ, यह एक मुद्दा से कम हो गया है क्योंकि मुझे अन्य बकवास के लिए अलग कर दिया गया है, लेकिन यह अभी भी अनसुलझा है। कोई विचार? –

0

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

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

+0

यह तब होता है जब "लोड उपयोगकर्ता प्रोफ़ाइल" सत्य पर सेट हो। – JamesQMurphy

+0

सही है, जिसका अर्थ है कि AppPool उपयोगकर्ता का फ़ोल्डर नहीं बनाया जाएगा यदि यह सही नहीं था? यही कारण है कि उन्होंने इसे इस तरह बनाया .....IIs को विंडोज़/अस्थायी में जंक को एक्सेस करने और संग्रहीत करने से रोकने के लिए और केवल उस खाते के लिए एक प्रबंधित सुरक्षित फ़ोल्डर की बजाय हार्ड ड्राइव पर रोकें। – Stokely

12
  1. फ़ोल्डर पर राइट क्लिक करें।

  2. क्लिक करें गुण

  3. सुरक्षा टैब क्लिक करें। आप कुछ इस तरह देखेंगे:

enter image description here

  1. पर क्लिक करें "संपादित करें ..." ऊपर स्क्रीन में बटन। ऊपर स्क्रीन में बटन

enter image description here

  1. पर क्लिक करें "जोड़ें ...": आप कुछ इस तरह देखेंगे। ऊपर स्क्रीन में बटन

enter image description here

  1. क्लिक करें "स्थान ...": आप कुछ इस तरह देखेंगे। आप इस तरह कुछ देखेंगे। अब, इस वृक्ष संरचना के शीर्ष पर जाएं और अपने कंप्यूटर का नाम चुनें, फिर ठीक क्लिक करें।

enter image description here

  1. अब टाइप "IIS AppPool \ your_apppool_name" और "की जाँच करें नाम" बटन। यदि ऐपपूल मौजूद है, तो आप अपने ऐपपूल नाम को टेक्स्टबॉक्स में अंडरलाइन के साथ देखेंगे। ठीक बटन पर क्लिक करें।

enter image description here

  1. चिह्नित/अचिह्नित जो कुछ भी पहुँच आप खाते में अनुदान के लिए

  2. क्लिक करें लागू करें बटन और फिर ठीक की जरूरत है।

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