यदि आपने कभी लिनक्स का उपयोग किया है या किसी ऐसे व्यक्ति को जानते हैं जो लिनक्स का उपयोग करता है, तो आपने शायद sudo कमांड के बारे में सुना होगा। यह कमांड लगभग हर लिनक्स वितरण का एक महत्वपूर्ण घटक है और यह आपको एक अलग उपयोगकर्ता के रूप में कमांड चलाने देता है, विशेष रूप से रूट उपयोगकर्ता। कुछ लिनक्स वितरणों पर, आप su कमांड का उपयोग करके रूट उपयोगकर्ता के रूप में लॉग इन कर सकते हैं, लेकिन इसे अत्यधिक जोखिम भरा माना जाता है और कोई भी इसे कभी नहीं करता।
वास्तव में, यह इतना खतरनाक है कि यह उबंटू जैसे लिनक्स वितरणों पर डिफ़ॉल्ट रूप से अक्षम है। इसके बजाय, यदि आप रूट उपयोगकर्ता के रूप में कमांड चलाना चाहते हैं तो आपको sudo कमांड का उपयोग करना होगा। तो विंडोज के बारे में क्या? खैर, दुर्भाग्य से, अधिकांश लोग विंडोज में एडमिनिस्ट्रेटर के रूप में लॉग इन होते हैं, जो लिनक्स में रूट उपयोगकर्ता के समान है। हालांकि, माइक्रोसॉफ्ट ने यूजर अकाउंट कंट्रोल या UAC को सक्षम करके एडमिनिस्ट्रेटर के रूप में लॉग इन होने के खतरनाक प्रभावों को कम करने की कोशिश की है।
इस तरह, भले ही उपयोगकर्ता के पास प्रशासनिक विशेषाधिकार हों, उस खाते के तहत चलने वाले एप्लिकेशन उन विशेषाधिकारों को तब तक विरासत में नहीं लेंगे जब तक कि उपयोगकर्ता द्वारा मैन्युअल रूप से अधिकृत न किया जाए। यह मैलवेयर और स्पाइवेयर को एक विंडोज उपयोगकर्ता को संक्रमित करने से रोकने में मदद करता है जो एडमिनिस्ट्रेटर के रूप में लॉग इन है।
तो जहां लिनक्स उपयोगकर्ताओं के पास sudo कमांड है, वहीं विंडोज उपयोगकर्ताओं के पास क्या है? क्या ऐसे विकल्प हैं जिनका उपयोग विंडोज उपयोगकर्ता उन्नत विशेषाधिकारों के साथ कमांड चलाने के लिए कर सकते हैं? क्या विंडोज के लिए sudo कमांड है? इस लेख में, मैं विंडोज उपयोगकर्ताओं के लिए sudo कमांड के पांच विकल्पों के बारे में बात करूंगा।
नोट: इनमें से कुछ टूल अब काफी पुराने हैं, इसलिए हो सकता है कि वे विंडोज के नवीनतम संस्करणों के साथ काम न करें।
विंडोज Runas कमांड
विंडोज में runas कमांड है, जो लिनक्स पर sudo का सीधा समकक्ष है। runas कमांड का उपयोग करके, आप किसी स्क्रिप्ट, प्रोग्राम या कमांड को एक अलग उपयोगकर्ता या एडमिनिस्ट्रेटर के रूप में निष्पादित कर सकते हैं। runas कमांड का पूरा सिंटैक्स है:
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
यदि आप एक प्रशासनिक कमांड प्रॉम्प्ट खोलना चाहते हैं, तो आप निम्न टाइप कर सकते हैं:
runas /noprofile /user:Administrator cmd

/noprofile वर्तमान उपयोगकर्ता प्रोफाइल को लोड नहीं करेगा। यदि आपको उपयोगकर्ता वातावरण चर तक पहुंच की आवश्यकता है तो आप इसे हटा सकते हैं। यदि आप नोटपैड का उपयोग करके प्रशासक विशेषाधिकारों के साथ एक टेक्स्ट फ़ाइल खोलना चाहते हैं, तो आप इस कमांड का उपयोग कर सकते हैं:
runas /user:Administrator "notepad my_file.txt"
इसके उपयोग के बारे में अधिक जानकारी के लिए runas पर टेकनेट पेज देख सकते हैं।
ध्यान दें कि runas कमांड का उपयोग करते समय, यदि आप कोई प्रोग्राम इंस्टॉल करते हैं या सेटिंग्स में परिवर्तन करते हैं, आदि, तो परिवर्तन उस उपयोगकर्ता खाते पर किए जाएंगे जिस पर आप कमांड चला रहे हैं। उदाहरण के लिए, मान लें कि आपके पास उपयोगकर्ता X है जो एक सामान्य उपयोगकर्ता है और उपयोगकर्ता Y, जो एक प्रशासक है। यदि आप X में लॉग इन करते हैं और फिर एडमिनिस्ट्रेटर क्रेडेंशियल्स का उपयोग करके runas करते हैं, तो परिवर्तन एडमिनिस्ट्रेटर की सेटिंग्स पर किए जाएंगे, उपयोगकर्ता X पर नहीं।
इसलिए यदि आप EXE फ़ाइल पर राइट-क्लिक करके और Run as Administrator चुनकर कोई एप्लिकेशन इंस्टॉल करते हैं, तो यह अंतर्निहित एडमिनिस्ट्रेटर उपयोगकर्ता प्रोफाइल में इंस्टॉल हो जाएगा, न कि उसमें जिसमें आप लॉग इन हैं। यदि आप प्रोफ़ाइल समस्याओं के बिना sudo जैसे वास्तविक उन्नत विशेषाधिकार चाहते हैं, तो नीचे अगले विकल्प को देखें।
विंडोज के लिए Sudo - Sourceforge
विंडोज के लिए Sudo एक मुफ्त प्रोग्राम है जिसे आप इंस्टॉल कर सकते हैं जो आपको विंडोज के लिए लिनक्स पर sudo कमांड का वही अनुभव देगा। एकमात्र अंतर यह है कि विंडोज के लिए Sudo "उपयोगकर्ता की प्रोफ़ाइल और बनाई गई वस्तुओं के स्वामित्व को संरक्षित करता है" जैसा कि डेवलपर द्वारा कहा गया है। यह वास्तव में आसान है यदि आप एप्लिकेशन इंस्टॉल करने या माई डॉक्यूमेंट्स जैसे उपयोगकर्ता स्थानों में परिवर्तन करने के लिए उन्नत अनुमतियों का उपयोग करना पसंद करते हैं।
यह आपको प्रशासनिक विशेषाधिकार देगा, लेकिन सभी परिवर्तनों को वर्तमान प्रोफ़ाइल में रखेगा बजाय उस खाते के जिसका उपयोग आप कमांड चलाने के लिए कर रहे हैं। प्रोग्राम को .NET संस्करण 2.0 की आवश्यकता होती है, जिसे आप व्यक्तिगत रूप से डाउनलोड नहीं कर सकते। 2.0 प्राप्त करने के लिए, आपको .NET Framework 3.5 इंस्टॉल करना होगा, जिसमें 2.0 शामिल है।
एक बार जब आप विंडोज के लिए Sudo इंस्टॉल कर लेते हैं, तो आपको उन उपयोगकर्ता खातों को जोड़ना होगा जिन्हें आप प्रोग्राम द्वारा बनाए गए Sudoers नामक एक विशिष्ट समूह में उन्नत विशेषाधिकार रखने की अनुमति देना चाहते हैं। माई कंप्यूटर या दिस पीसी पर राइट-क्लिक करें और प्रबंधित करें पर क्लिक करें। फिर उपयोगकर्ता और समूह का विस्तार करें और समूह पर क्लिक करें। आपको Sudoers नामक एक दिखाई देना चाहिए।

Sudoers पर डबल-क्लिक करें और जोड़ें बटन पर क्लिक करें।

अगले डायलॉग पर, उन्नत बटन पर क्लिक करें और फिर अभी ढूंढें पर क्लिक करें। यह सिस्टम पर सभी उपयोगकर्ताओं और समूहों को सूचीबद्ध करेगा। जिस उपयोगकर्ता को आप जोड़ना चाहते हैं उस पर डबल-क्लिक करें।

आप जितने उपयोगकर्ताओं को जोड़ना चाहते हैं, उनके लिए इस चरण को दोहराएं। फिर OK पर क्लिक करें और आपको ऊपर दिखाए गए सदस्य सूची बॉक्स में सदस्य सूचीबद्ध दिखाई देंगे। OK पर क्लिक करें और अब आपको sudo GUI और कमांड का उपयोग करने में सक्षम होना चाहिए। यदि आप किसी प्रोग्राम पर राइट-क्लिक करते हैं, तो आपको Sudo विकल्प दिखाई देगा।

आप कमांड प्रॉम्प्ट भी खोल सकते हैं और उन्नत अनुमतियों के साथ कमांड चलाने के लिए sudo टाइप कर सकते हैं।

कुल मिलाकर, यह काफी उपयोगी है और बहुत अच्छा काम करता है। हालांकि, ध्यान दें कि यह विशेष प्रोग्राम वास्तव में प्रोग्राम या प्रोसेस को लॉन्च करने के लिए उपयोगी है, चाहे राइट-क्लिक के माध्यम से हो या कमांड प्रॉम्प्ट के माध्यम से, लेकिन यह कमांड लाइन ऐप्स चलाने के लिए नहीं है। उदाहरण के लिए, यदि आप sudo mkdir "c:\Program Files\new" करना चाहते हैं, तो यह विंडोज के लिए Sudo का उपयोग करके काम नहीं करेगा। उस कार्यक्षमता के लिए, एक और प्रोग्राम है जिसे उसी नाम से बुलाया जाता है, लेकिन एक अलग डेवलपर द्वारा। नीचे पढ़ें।
विंडोज के लिए Sudo - ल्यूक सैम्पसन
एक और डेवलपर है जिसने विंडोज के लिए एक और Sudo लिखा है जो आपको कमांड लाइन ऐप्स भी निष्पादित करने देता है। तो आइए C:\Program Files में एक नया फ़ोल्डर बनाने के उदाहरण पर वापस जाएं। आप डिफ़ॉल्ट रूप से वास्तव में ऐसा नहीं कर सकते।

ऊपर मैं PowerShell का उपयोग कर रहा हूं, लेकिन आपको कमांड प्रॉम्प्ट का उपयोग करके भी वही त्रुटि मिलेगी। हालांकि, एक बार जब आप विंडोज के लिए Sudo इंस्टॉल कर लेते हैं, तो कमांड के सामने केवल sudo शब्द जोड़ें और यह बिना किसी त्रुटि के पूरी तरह से काम करता है!
इसे इंस्टॉल करने के लिए, आपको PowerShell खोलना होगा और फिर निम्न कमांड को क्रम में टाइप करना होगा:
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
set-executionpolicy unrestricted -s cu -f
scoop install sudo
यदि सब कुछ ठीक काम करता है, तो आपको प्रत्येक कमांड के बाद PowerShell में निम्न आउटपुट दिखाई देगा:

बस! अब आप कमांड टाइप करना शुरू कर सकते हैं और सामने sudo जोड़ सकते हैं। इस प्रोग्राम के बारे में केवल एक कष्टप्रद बात यह है कि UAC विंडो अभी भी पॉप अप होती है और काम करने के लिए आपको Yes पर क्लिक करना पड़ता है। उस मामूली झुंझलाहट के साथ भी, लाभ इसके लायक हैं।
Elevate
Elevate एक प्रोग्राम है जो UAC के साथ काम करता है और बिल्कुल sudo की तरह काम नहीं करता। Elevate के साथ, यह रनस कमांड की तरह निष्पादित उपयोगकर्ता को एडमिनिस्ट्रेटर में बदल देगा। हालांकि, यह कमांड लाइन या बैच फ़ाइलों के साथ काम करने के लिए उपयोगी है।

Elevate का मुख्य उद्देश्य UAC को बायपास करना नहीं है, बल्कि एक गैर-उन्नत शेल से एक उन्नत स्थिति में एक प्रक्रिया शुरू करना और फिर कमांड पूरा होने के बाद भी सामान्य रूप से जारी रखना है। Elevate स्क्रिप्टिंग के लिए उपयोगी है क्योंकि आपको पूरे राइट-क्लिक करने और कमांड प्रॉम्प्ट को एडमिनिस्ट्रेटर के रूप में चलाने की प्रक्रिया को स्क्रिप्ट करने की कोशिश करने की चिंता नहीं करनी पड़ती।
विंडोज के लिए एलिवेशन PowerToys
उन लोगों के लिए जो कमांड लाइन पर बहुत काम करते हैं या स्क्रिप्ट और बैच फ़ाइलों के साथ काम करते हैं, विंडोज के लिए एलिवेशन PowerToys पेज में कई उपयोगी टूल और स्क्रिप्ट हैं।

स्क्रिप्ट एलिवेशन पावर टॉयज को UAC के निराशाजनक पहलुओं को दूर करने के लिए बनाया गया था जब कमांड लाइन से किसी प्रोग्राम को उन्नत करने या स्क्रिप्ट को प्रशासक के रूप में चलाने की कोशिश की जाती है।
उम्मीद है, आपके लिए टूल और प्रोग्राम पर्याप्त हैं ताकि आप महसूस कर सकें कि आप वास्तव में विंडोज पर sudo का उपयोग कर रहे हैं। इसके लिए कोई सही प्रतिस्थापन नहीं है, लेकिन कई विकल्प हैं जो करीब आते हैं। यदि आप विंडोज में प्रोग्राम, कमांड या स्क्रिप्ट को उन्नत करने के लिए कुछ और उपयोग करते हैं, तो हमें टिप्पणियों में बताएं। आनंद लें!