सवाल मैं एक गैर-डोमेन-सदस्य सर्वर पर मनमानी उपयोगकर्ता या समूह के लिए किसी सेवा पर अनुमतियों को प्रारंभ / रोक / पुनरारंभ कैसे करूं?


हमारे पास हमारे सर्वर पर चल रहे विंडोज सेवा का एक सूट है जो अन्य सेवाओं की देखभाल करने वाली एक सेवा के अपवाद के साथ स्वचालित कार्यों का एक समूह स्वतंत्र रूप से एक दूसरे का प्रदर्शन करता है।

यदि किसी एक सेवा को जवाब देने या लटकने में असफल होना चाहिए, तो यह सेवा सेवा को पुनरारंभ करने का प्रयास करती है और यदि प्रयास के दौरान कोई अपवाद फेंक दिया जाता है, तो इसके बजाय समर्थन टीम को ईमेल करें, ताकि वे स्वयं सेवा को पुनरारंभ कर सकें।

थोड़ा सा शोध करने के बाद, मैं कुछ 'समाधान' में आया हूं जो उल्लेख किए गए कार्यवाही से हैं KB907460 वह खाता देने के लिए जिसके अंतर्गत सेवा व्यवस्थापक अधिकार चला रही है।

मैं इन तरीकों में से किसी के साथ सहज नहीं हूं - मुझे माइक्रोसॉफ्ट के ज्ञान बेस आलेख में उल्लिखित पहली विधि के परिणामों को समझ में नहीं आता है, लेकिन मैं निश्चित रूप से उस खाते तक व्यवस्थापक पहुंच नहीं देना चाहता जिसके तहत सेवा चल रही है ।

मैंने स्थानीय सुरक्षा नीति और नीति के अलावा एक त्वरित रूप से देखा है जो परिभाषित करता है कि कोई खाता सेवा के रूप में लॉग ऑन कर सकता है या नहीं, मैं कुछ और नहीं देख सकता जो ऐसा लगता है कि यह सेवाओं को संदर्भित करता है।

हम इसे सर्वर 2003 और सर्वर 2008 पर चला रहे हैं, इसलिए किसी भी विचार या पॉइंटर्स को कृपापूर्वक प्राप्त किया जाएगा!


स्पष्टीकरण: मैं किसी दिए गए उपयोगकर्ता या समूह को सभी सेवाओं को शुरू / बंद / पुनरारंभ करने की क्षमता प्रदान नहीं करना चाहता हूं - मैं ऐसा करने की अनुमति देना चाहता हूं विशिष्ट केवल किसी दिए गए उपयोगकर्ता या समूह के लिए सेवाएं।


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


58
2017-10-04 13:16


मूल


आप एमएस से इस आलेख को भी देख सकते हैं, जो जीपी संशोधनों को भी इंगित करता है: support.microsoft.com/kb/256345
क्षमा करें मैंने तुम्हें याद किया ... मैं व्यस्त था। आप इस तरह कुछ ढूंढ रहे थे: serverfault.com/questions/15147/... - Evan Anderson
मुझे पता है कि यह एक बहुत पुराना सवाल है, लेकिन क्या आपने विंडोज सेवा प्रबंधक में 'रिकवरी' विकल्पों का उपयोग करने पर विचार किया? - Tim Long


जवाब:


ऐसा करने का एक जीयूआई-आधारित तरीका प्रतीत नहीं होता है जब तक कि आप किसी डोमेन से जुड़ नहीं जाते - कम से कम कोई भी मुझे कहीं भी नहीं मिल सकता - इसलिए मैंने थोड़ा अधिक खुदाई की और मुझे एक ऐसा उत्तर मिला जो काम करता है हमारे sitaution।

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

सेवा के मौजूदा सुरक्षा वर्णनकर्ता में शामिल होने के लिए, उपयोग करें sc sdshow "Service Name" मौजूदा वर्णनकर्ता प्राप्त करने के लिए। यदि यह एक सादा पुराना .NET विंडोज सेवा है - जैसा कि हमारे साथ मामला है - सुरक्षा वर्णनकर्ता को ऐसा कुछ दिखना चाहिए:

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOC
RRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)S:(AU;FA
;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

हमें अनुमति देने की आवश्यकता थी RP (सेवा शुरू करने के लिए), WP (सेवा को रोकने के लिए), DT (सेवा को रोकने / जारी रखने के लिए) और LO(टी सेवा की वर्तमान स्थिति पूछने के लिए)। यह हमारे सेवा खाते को पावर उपयोगकर्ता समूह में जोड़कर किया जा सकता है, लेकिन मैं केवल उस खाते तक व्यक्तिगत पहुंच प्रदान करना चाहता हूं जिसके अंतर्गत रखरखाव सेवा चलती है।

का उपयोग करते हुए runas सेवा खाते के तहत कमांड प्रॉम्प्ट खोलने के लिए, मैं भाग गया whoami /all जिसने मुझे सेवा खाते का एसआईडी दिया, और फिर नीचे अतिरिक्त एसडीडीएल बनाया:

(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)

यह तब में जोड़ा जाता है डी: उपरोक्त एसडीडीएल स्ट्रिंग का अनुभाग:

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOC
RRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)(A;;RPWP
DTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)S:(AU;FA;CCDCLCSWRPWPDTLOC
RSDRCWDWO;;;WD)

इसके बाद इसका उपयोग कर सेवा पर लागू किया जाता है sc sdset आदेश:

sc sdset "Service Name" D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;
CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CR;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU
)(A;;RPWPDTLO;;;S-x-x-xx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxx-xxxx)S:(AU;FA;CCDCLCSW
RPWPDTLOCRSDRCWDWO;;;WD)

यदि सभी योजना के अनुसार जाते हैं, तो सेवा को तब शुरू किया जा सकता है, रोका जा सकता है, रोका जा सकता है और उपरोक्त एसआईडी द्वारा परिभाषित उपयोगकर्ता द्वारा इसकी स्थिति की पूछताछ की जा सकती है।


51
2017-10-05 12:23



एक ही काम करने के एक आसान तरीके के लिए, आपको उपयोग करना चाहिए SetACL.exe। सेवा पर अनुमतियां सेट करने के लिए इसका उपयोग कैसे करें इसका एक उदाहरण यहां दिया गया है: SetACL.exe -on "\\server1\W32Time" -ot srv -actn ace -ace "n:domain1\group1;p:start_stop" - Mason G. Zhwiti
आप प्रोसेस हैकर का उपयोग कर सकते हैं (processhacker.sourceforge.net) सभी सेवाओं को कॉन्फ़िगर करने के लिए एक जीयूआई के लिए। इसमें छिपी हुई सेवाएं शामिल हैं और आपको बाइनरी पथ - और अनुमतियों जैसी सेवा की अधिक सेटिंग्स कॉन्फ़िगर करने की अनुमति देती है। - ygoe
कोरटेक गुई ने मेरे लिए काम किया। यह विश्वास करना मुश्किल है कि जीयूआई पहले से ही खिड़कियों में मौजूद नहीं है। यहां जवाब पढ़ना संभवतः यह कैसे कठिन हो सकता है? माइक्रोसॉफ्ट की तरफ से बड़ा असफल रहा। - MikeKulls
मुझे जोड़ना पसंद है CCLCSW एसडीडीएल अनुमतियों (आरपीडब्लूपीटीएलओ के अतिरिक्त) में, इसलिए जब मैं गेट-सर्विस चलाता हूं तो मुझे सूचीबद्ध सेवा भी मिल सकती है (जिसे पहले स्कैनगर सेवा नियंत्रण प्रबंधक सेवा के लिए एसडीडीएल को संशोधित करने की आवश्यकता होती है ताकि सुलभ सेवाओं को सूचीबद्ध किया जा सके)। मुझे भी चाहिए SW कुछ सेवाओं को पुनरारंभ करने में सक्षम होने के लिए। - Baodad


मुझे बस एक ही समस्या थी।
आप उपयोग कर सकते हैं SubInACL.exe संसाधन किट से। यहां स्टैंडअलोन उपयोगिता डाउनलोड करें: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23510

उपयोग msiexec /a PathToMSIFile /qb TARGETDIR=DirectoryToExtractTo यदि आप .msi इंस्टॉल नहीं करना चाहते हैं तो फ़ाइलों को निकालने के लिए

  1. एक कमांड प्रॉम्प्ट खोलें प्रशासक
  2. निर्देशिका में जाएं जहां आपने .exe रखा था
  3. रन subinacl /service SERVICE_NAME /grant=COMPUTER_NAME\USERNAME=TOP

टी = सेवा शुरू करें
ओ = सेवा बंद करो
पी = रोकें / सेवा जारी रखें

पूर्ण संदर्भ: विंडोज 2000 में सेवाओं का प्रबंधन करने के लिए उपयोगकर्ताओं के अधिकार कैसे प्रदान करें 
या टाइप करें subinacl /help

ध्यान दें: कोशिश मत करो subinacl /service SERVICE_NAME /perm क्योंकि यह आपको परेशानी में डाल सकता है (सबक सीखा: पी)। नाम भ्रामक हो सकता है (अनुमति! = अनुमति), क्योंकि यह सभी उपयोगकर्ताओं को भी अनुमति देता है (यहां तक ​​कि व्यवस्थापक!)।


31
2017-08-26 22:17



एसओ और एसएफ खातों को माफ नहीं कर सकते पॅट। - Chopper3
@ Chopper3 आपकी प्रतिक्रिया के लिए धन्यवाद। असल में मेरे पास 2 एसओ खाते हैं: एक पंजीकृत है और इस एसएफ खाते से जुड़ा हुआ है; दूसरा एक है अपंजीकृत एसओ खाता मैं पंजीकरण करने से पहले था (इस्तेमाल किया वही ईमेल पता)। मैं उम्मीद कर रहा था कि दोनों को विलय किया जा सके, इसलिए मैं उस पोस्ट को ट्रैक कर सकता हूं जो मैंने पहले किया था। उल्लेखानुसार यहाँ मैंने एक पोस्ट को ध्वजांकित करने की कोशिश की लेकिन एसओ (1 प्रतिष्ठा) पर ऐसा नहीं कर सका। यही कारण है कि मैंने इस पोस्ट को ध्वजांकित किया। मैंने दो सप्ताह पहले team@stackoverflow.com को ईमेल करने का भी प्रयास किया लेकिन मुझे कोई प्रतिक्रिया नहीं मिली। क्या आप मुझे सही जगह / व्यक्ति को निर्देशित कर सकते हैं? - patrx
एमएसडीएन पर इस प्रक्रिया के विवरण चेकआउट करें: support.microsoft.com/?kbid=288129 - Marc Climent


आप देख रहे हैं कंप्यूटर कॉन्फ़िगरेशन - नीतियां - विंडोज सेटिंग्स - सुरक्षा सेटिंग्स - सिस्टम सेवाएं

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

ऐसी सेवाओं को जोड़ने के लिए जो केवल किसी अन्य मशीन पर मौजूद हैं:

  • अन्य मशीन से सेवा की reg कुंजी निर्यात करें
  • gpedit मशीन पर आयात करें
  • नीति लागू करें
  • आयातित कुंजी हटाएं

4
2017-10-04 15:57



मेरा विश्वास है कि आप इसे करने के लिए मतलब है gpedit.msc, "सर्वर प्रबंधित करें" विंडो नीति नीति नोड सूचीबद्ध नहीं करता है। यदि ऐसा है, तो मैं सुरक्षा सेटिंग्स नोड के नीचे एक आइटम नहीं देख सकता जो संदर्भित करता है जैसा कि आप उपरोक्त सुझाव देते हैं, "सर्वर सेवा" या तो सर्वर 2008 या सर्वर 2003 पर। - abitgone
आह येस। मुझे लगता है कि आप समूह नीति के माध्यम से इन परिवर्तनों को करने की योजना बना रहे थे। - Ryan Bolger
दरअसल - ये सदस्य सर्वर नहीं हैं। क्या स्थानीय नीति, या किसी अन्य विधि का उपयोग करके इसे लक्षित करने का कोई तरीका है? - abitgone


मैंने नियमित डोमेन उपयोगकर्ता (व्यवस्थापक नहीं) के रूप में MySQL को शुरू करने में सक्षम होने के लिए SubinAcl (जैसा कि patrx द्वारा सुझाया गया है) का उपयोग किया और यह पूरी तरह से काम करता है! (आदेश को कम से कम एक-लोकल के रूप में निष्पादित करने की आवश्यकता है- व्यवस्थापक)

आदेश है:

[PATH_TO_SUBACL]\subinacl.exe /service MySQL /grant=[Domain User - Without domain]=TOP

बस ध्यान दें कि मैंने डोमेन के साथ इसे उपसर्ग किए बिना उपयोगकर्ता में प्रवेश किया है ... अन्यथा कमांड पार्सिंग कमांड पर विफल रहता है!


2
2018-05-11 08:24