'स्थानीय प्रणाली' खाते और 'नेटवर्क सेवा' खाते के बीच अंतर?


386

मैंने एक विंडोज सेवा लिखी है जो एक अलग प्रक्रिया को जन्म देती है। यह प्रक्रिया एक COM ऑब्जेक्ट बनाता है। यदि सेवा 'लोकल सिस्टम' खाते के अंतर्गत चलती है, तो सब कुछ ठीक चलता है, लेकिन यदि सेवा 'नेटवर्क सेवा' खाते के अंतर्गत चलती है, तो बाहरी प्रक्रिया शुरू हो जाती है, लेकिन यह COM ऑब्जेक्ट बनाने में विफल रहती है। COM ऑब्जेक्ट निर्माण से दी गई त्रुटि एक मानक COM त्रुटि नहीं है (मुझे लगता है कि यह बनाई जा रही COM ऑब्जेक्ट के लिए विशिष्ट है)।

इसलिए, मैं यह कैसे निर्धारित करूं कि दोनों 'स्थानीय प्रणाली' और 'नेटवर्क सेवा' कैसे भिन्न हैं? ये बिल्ट-इन अकाउंट्स बहुत रहस्यमयी लगते हैं और किसी को इनके बारे में ज्यादा पता नहीं लगता है।

जवाबों:


701

चूंकि मानक सेवा खातों की कार्यक्षमता के बारे में बहुत भ्रम है, इसलिए मैं एक त्वरित रन डाउन देने का प्रयास करूंगा।

पहले वास्तविक खाते:

  • स्थानीय सेवा खाता (पसंदीदा)

    एक सीमित सेवा खाता जो कि नेटवर्क सेवा के समान है और इसका अर्थ है मानक कम से कम विशेषाधिकार वाली सेवाएं चलाना। हालाँकि, नेटवर्क सेवा के विपरीत यह नेटवर्क को बेनामी उपयोगकर्ता के रूप में एक्सेस करता है ।

    • नाम: NT AUTHORITY\LocalService
    • खाते का कोई पासवर्ड नहीं है (आपके द्वारा प्रदान की गई कोई भी पासवर्ड जानकारी अनदेखा की जाती है)
    • HKCU LocalService उपयोगकर्ता खाते का प्रतिनिधित्व करता है
    • है कम से कम स्थानीय कंप्यूटर पर विशेषाधिकार
    • नेटवर्क पर अनाम क्रेडेंशियल्स प्रस्तुत करता है
    • SID : S-1-5-19
    • HKEY_USERS रजिस्ट्री कुंजी ( HKEY_USERS\S-1-5-19) के तहत अपनी प्रोफ़ाइल है

     

  • नेटवर्क सेवा खाता

    सीमित सेवा खाता जो मानक विशेषाधिकार प्राप्त सेवाओं को चलाने के लिए है। यह खाता स्थानीय प्रणाली (या यहां तक ​​कि प्रशासक) की तुलना में कहीं अधिक सीमित है लेकिन फिर भी मशीन के रूप में नेटवर्क तक पहुंचने का अधिकार है (ऊपर कावड़ देखें)।

    • NT AUTHORITY\NetworkService
    • खाते का कोई पासवर्ड नहीं है (आपके द्वारा प्रदान की गई कोई भी पासवर्ड जानकारी अनदेखा की जाती है)
    • HKCU नेटवर्क सेवा उपयोगकर्ता खाते का प्रतिनिधित्व करता है
    • है कम से कम स्थानीय कंप्यूटर पर विशेषाधिकार
    • कंप्यूटर के क्रेडेंशियल्स (जैसे MANGO$) दूरस्थ सर्वर को प्रस्तुत करता है
    • SID : S-1-5-20
    • HKEY_USERS रजिस्ट्री कुंजी ( HKEY_USERS\S-1-5-20) के तहत अपनी प्रोफ़ाइल है
    • यदि इसका उपयोग करके किसी कार्य को शेड्यूल करने का प्रयास किया जा रहा है, तो उपयोगकर्ता या समूह संवाद NETWORK SERVICEका चयन करें

     

  • लोकल सिस्टम खाता (खतरनाक, उपयोग न करें!)

    पूरी तरह से विश्वसनीय खाता, व्यवस्थापक खाते से अधिक। एकल बॉक्स पर कुछ भी नहीं है जो यह खाता नहीं कर सकता है, और इसे मशीन के रूप में नेटवर्क तक पहुंचने का अधिकार है (इसके लिए सक्रिय निर्देशिका की आवश्यकता है और मशीन खाते की अनुमतियों को किसी चीज़ को देना)

    • नाम: .\LocalSystem(उपयोग LocalSystemया भी कर सकते हैं ComputerName\LocalSystem)
    • खाते का कोई पासवर्ड नहीं है (आपके द्वारा प्रदान की गई कोई भी पासवर्ड जानकारी अनदेखा की जाती है)
    • SID : S-1-5-18
    • इसकी अपनी कोई प्रोफ़ाइल नहीं है ( डिफ़ॉल्ट उपयोगकर्ता का HKCUप्रतिनिधित्व करता है )
    • है व्यापक स्थानीय कंप्यूटर पर विशेषाधिकार
    • कंप्यूटर के क्रेडेंशियल्स (जैसे MANGO$) दूरस्थ सर्वर को प्रस्तुत करता है

     

ऊपर जब नेटवर्क तक पहुँचने के बारे में बात की जाती है, तो यह केवल SPNEGO (नेगोशिएट), NTLM और कर्बरोस को संदर्भित करता है और किसी अन्य प्रमाणीकरण तंत्र को नहीं। उदाहरण के लिए, चल रहा प्रसंस्करण LocalServiceअभी भी इंटरनेट तक पहुंच सकता है।

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

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

आपके विशिष्ट मामले में, आप जिस मुद्दे को देख रहे हैं, वह यह है कि DCOM या COM + सक्रियण दिए गए सेट के खातों तक सीमित है। Windows XP SP2 में, Windows Server 2003 और ऊपर सक्रियण अनुमति काफी महत्वपूर्ण थी। आपको अपने विशिष्ट COM ऑब्जेक्ट की जांच करने और सक्रियण अनुमतियों को देखने के लिए घटक सेवाएँ MMC स्नैपइन का उपयोग करना चाहिए। यदि आप नेटवर्क पर मशीन खाते के रूप में कुछ भी एक्सेस नहीं कर रहे हैं, तो आपको स्थानीय सेवा (स्थानीय सिस्टम जो मूल रूप से ऑपरेटिंग सिस्टम है) का उपयोग करने पर गंभीरता से विचार करना चाहिए ।


विंडोज सर्वर 2003 में आप नहीं कर सकते हैं एक निर्धारित कार्य को चलाने के रूप में

  • NT_AUTHORITY\LocalService (स्थानीय सेवा खाता उर्फ), या
  • NT AUTHORITY\NetworkService (उर्फ नेटवर्क सेवा खाता)।

यह क्षमता केवल टास्क शेड्यूलर 2.0 के साथ जोड़ी गई थी , जो केवल विंडोज विस्टा / विंडोज सर्वर 2008 और नए में मौजूद है।

एक सेवा के रूप में चल रही है NetworkServiceजो नेटवर्क पर मशीन क्रेडेंशियल प्रस्तुत करती है। इसका मतलब है कि यदि आपका कंप्यूटर बुलाया गया था mango, तो यह मशीन खाते के रूप में मौजूद होगा MANGO$ :

यहां छवि विवरण दर्ज करें


7
मुझे लगता है कि प्रबंधित सेवा खाते खाते को स्थापित करने और पासवर्ड को प्रबंधित करने के कुछ दर्द को दूर करते हैं (या इसे एक डोमेन व्यवस्थापक या प्रतिनिधि को पास कर देते हैं।)
कार्ल जी

1
नमस्ते, स्पष्टीकरण के लिए धन्यवाद। हालांकि मेरा एक सवाल है - स्थानीय प्रणाली / नेटवर्क सेवा खाते का उपयोग करके सक्रिय निर्देशिका में कंटेनरों में प्रविष्टियों को जोड़ना / हटाना संभव है (बशर्ते कि सक्रिय निर्देशिका में कंटेनर उस कंप्यूटर पर पूरी अनुमति दे चुका है जिस पर ये विंडोज़ सेवाएँ चल रही हैं)। कृपया ध्यान दें कि सब कुछ काम कर रहा है, जब मैंने सेवा को डोमेन उपयोगकर्ताओं में से एक के रूप में चलाया, लेकिन स्थानीय प्रणाली / नेटवर्क सेवा के रूप में नहीं (विवरण के लिए stackoverflow.com/questions/20943436/… ) सादर
सपने देखने वाले '

1
हाँ, यह चाहिए। मैं सीधे आपके प्रश्न का उत्तर दूंगा क्योंकि यह प्रश्न अधिक सारगर्भित है और यह एक विशिष्ट कार्यान्वयन है।
पीटर ओहलर्ट

7
ध्यान दें कि "अनाम" उपयोगकर्ता न केवल "प्रमाणित उपयोगकर्ताओं" का सदस्य है, यह विंडोज़ पर "सभी" का सदस्य नहीं है। विंडोज नेटवर्क पर, 'अनाम' में केवल उन संसाधनों तक पहुंच होती है जिन्हें स्पष्ट रूप से 'गुमनाम' को दिया गया है - डिफ़ॉल्ट रूप से, कुछ भी नहीं।
डेविड

1
@ हकमफॉस्टोक मेरे पास बहुत सारे संदर्भ नहीं हैं। अगर मुझे सही से याद है, तो डैन ब्राउन ने अपनी पुस्तक प्रोग्रामिंग विंडोज सिक्योरिटी में इसे शामिल किया। विंडोज़ की मदद और MSDN डॉक्स में बहुत कुछ है लेकिन मेरा कोई विशेष संदर्भ नहीं है। प्रोग्रामिंग विंडो पर जेफ रिक्टर की किताब (ओं) के साथ-साथ सोलोमन और रोसिनोविच की इनसाइड विंडोज (3 या 4 थ एड) भी कुछ है।
पीटर ओहेलर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.