আপনি যদি কখনো লিনাক্স ব্যবহার করেছেন বা কেউ লিনাক্স ব্যবহার করে এমন কেউকে চেনে থাকেন, তবে আপনি সম্ভবত sudo কমান্ডের কথা শুনেছেন। কমান্ডটি প্রায় সব লিনাক্স ডিস্ট্রিবিউশনের একটি ক্রিটিক্যাল কম্পোনেন্ট এবং এর কাজ হলো আপনাকে একটি কমান্ড অন্য কোনো ইউজার হিসেবে রান করতে দেয়া, বিশেষ করে রুট ইউজার হিসেবে। কিছু লিনাক্স ডিস্ট্রিবিউশনে, আপনি su কমান্ড ব্যবহার করে রুট ইউজার হিসেবে লগ ইন করতে পারেন, কিন্তু এটি অত্যধিক রিস্কি বলে মনে করা হয় এবং কেউ কখনো এটি করে না।
আসলে, এটি এতটাই ঝুঁকিপূর্ণ যে উবুন্টু এর মতো লিনাক্স ডিস্ট্রিবিউশনে ডিফল্টভাবে নিষ্ক্রিয় থাকে। পরিবর্তে, আপনি যদি রুট ইউজার হিসেবে কমান্ড রান করতে চান, তবে sudo কমান্ড ব্যবহার করতে হবে। উইন্ডোজের কী হয়? দুর্ভাগ্যক্রমে, অধিকাংশ মানুষ উইন্ডোজে অ্যাডমিনিস্ট্রেটর হিসেবে লগ ইন করে থাকেন, যা লিনাক্সের রুট ইউজারের সমান। যবেause, মাইক্রোসফট অ্যাডমিনিস্ট্রেটর হিসেবে লগ ইন করার খারাপ প্রভাব কমাতে চেষ্টা করেছে User Account Control (UAC) সক্ষম করে।
এভাবে, যেন ব্যবহারকারীর অ্যাডমিনিস্ট্রেটিভ প্রivilেজ থাকা সত্ত্বেও, সেই একাউন্টের অধীনে চল रहे অ্যাপ্লিকেশনগুলো সেই প্রivilেজ বা উত্তরাধিকার পাবে না যতক্ষণ না ব্যবহারকারী ম্যানুয়ালি অনুমোদন করে। এটি উইন্ডোজ ব্যবহারকারীকে ম্যালওয়্যার এবং স্পাইওয়্যার থেকে বাঁচাতে সাহায্য করে যিনি অ্যাডমিনিস্ট্রেটর হিসেবে লগ ইন করে থাকেন।
তাহলে লিনাক্স ব্যবহারকারীদের sudo কমান্ড আছে, উইন্ডোজ ব্যবহারকারীদের কী আছে? কী উইন্ডোজ ব্যবহারকারীদের জন্য sudo কমান্ডের অল্টারনেটিভ আছে যা এলিভেটেড প্রivilেজে কমান্ড রান করতে দেবে? উইন্ডোজের জন্য sudo কমান্ড আছে কি? এই আর্টিকেলে আমি উইন্ডোজ ব্যবহারকারীদের জন্য sudo কমান্ডের ৫টি অল্টারনেটিভ নিয়ে আলোচনা করব।
দ্রষ্টব্য: এই টুলগুলোর কিছু খুব পুরানো, তাই এগুলো লেটেস্ট উইন্ডোজ ভার্সনগুলোর সাথে কাজ করতে পারে বা নাও পারে।
Windows Runas কমান্ড
উইন্ডোজের runas কমান্ড আছে, যা লিনাক্সের sudo-এর সরাসরি কাউন্টারপার্ট। runas কমান্ড ব্যবহার করে, আপনি একটি স্ক্রিপ্ট, প্রোগ্রাম বা কমান্ড অন্য কোনো ইউজার হিসেবে বা অ্যাডমিনিস্ট্রেটর হিসেবে এক্সিকিউট করতে পারেন। runas কমান্ডের পুরো সিনট্যাক্স:
runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
আপনি যদি একটি অ্যাডমিনিস্ট্রেটিভ কমান্ড প্রম্পট খুলতে চান, তবে নিচের কমান্ডটি টাইপ করতে পারেন:
runas /noprofile /user:Administrator cmd

/noprofile বর্তমান ইউজার প্রোফাইল লোড করবে না। আপনি এটি সরাতে পারেন যদি ইউজার এনভায়রনমেন্ট ভেরিয়েবলস এক্সেস করার প্রয়োজন হয়। আপনি যদি অ্যাডমিনিস্ট্রেটর প্রivilেজে নোটপ্যাড দিয়ে একটি টেক্সট ফাইল খোলতে চান, তবে এই কমান্ডটি ব্যবহার করতে পারেন:
runas /user:Administrator "notepad my_file.txt"
runas কমান্ড ব্যবহারের বিস্তারিত জানতে Technet পেজটি দেখুন।
দ্রষ্টব্য: runas কমান্ড ব্যবহার করার সময়, আপনি যদি কোনো প্রোগ্রাম ইনস্টল করেন বা সেটিংস পরিবর্তন করেন, তবে পরিবর্তনগুলো সেই ইউজার একাউন্টে হবে যার ক্রিডেনশিয়াল ব্যবহার করে আপনি কমান্ডটি রান করছেন। উদাহরণস্বরূপ, ইউজার X সাধারণ ইউজার এবং ইউজার Y অ্যাডমিনিস্ট্রেটর। আপনি X-এ লগ ইন করে থাকলে এবং অ্যাডমিনিস্ট্রেটর ক্রিডেনশিয়াল দিয়ে runas করলে, পরিবর্তনগুলো অ্যাডমিনিস্ট্রেটরের সেটিংসে হবে, ইউজার X-এ নয়।
তাই আপনি যদি EXE ফাইলে রাইট-ক্লিক করে Run as Administrator বেছে নিয়ে অ্যাপ্লিকেশন ইনস্টল করেন, তবে এটি বিল্ট-ইন অ্যাডমিনিস্ট্রেটর ইউজার প্রোফাইলে ইনস্টল হবে, আপনার লগ ইন করা প্রোফাইলে নয়। আপনি যদি প্রোফাইল সমস্যা ছাড়া sudo-এর মতো সত্যিকারের এলিভেটেড প্রivilেজ চান, তবে নিচের অল্টারনেটিভটি দেখুন।
Sudo for Windows — Sourceforge
Sudo for Windows একটি ফ্রি প্রোগ্রাম যা ইনস্টল করলে লিনাক্সের sudo কমান্ডের মতো অভিজ্ঞতা দেবে উইন্ডোজে। একমাত্র পার্থক্য হলো Sudo for Windows "ব্যবহারকারীর প্রোফাইল এবং তৈরি অবজেক্টের মালিকানা সংরক্ষণ করে" ডেভলপারের அறনযায়। এটি খুব হ্যান্ডি যদি আপনি অ্যাপ ইনস্টল বা My Documents-এর মতো ইউজার লোকেশনে পরিবর্তন করার জন্য এলিভেটেড পারমিশন ব্যবহার করেন।
এটি আপনাকে অ্যাডমিনিস্ট্রেটিভ প্রivilেজ দেবে, কিন্তু সব পরিবর্তন বর্তমান প্রোফাইলে রাখবে, না کہ যে একাউন্ট ব্যবহার করে কমান্ডটি রান করছেন। প্রোগ্রামটির জন্য .NET ভার্সন ২.০ প্রয়োজন, যা আপনি আলাদা ডাউনলোড করতে পারবেন না। ২.০ পেতে হলে .NET Framework 3.5 ইনস্টল করতে হবে, যেটিতে ২.০ থাকে।
Sudo for Windows ইনস্টল হলে, আপনাকে যেসব ইউজার একাউন্টকে এলিভেটেড প্রivilেজ দিতে চান, সেগুলো প্রোগ্রাম তৈরি করা একটি নির্দিষ্ট গ্রুপে যোগ করতে হবে যার নাম Sudoers। My Computer বা This PC-এ রাইট-ক্লিক করে Manage-এ ক্লিক করুন। তারপর Users and Groups এক্সপ্যান্ড করে Groups-এ ক্লিক করুন। আপনাকে Sudoers নামে একটি দেখতে मिलবে।

Sudoers-এ ডাবল-ক্লিক করুন এবং Add বাটনে ক্লিক করুন।

পরবর্তী ডায়ালগে, Advanced বাটনে ক্লিক করুন এবং তারপর Find Now-এ ক্লিক করুন। এটি সিস্টেমের সব ইউজার এবং গ্রুপ লিস্ট করবে। যে ইউজারটি যোগ করতে চান সেটিতে ডাবল-ক্লিক করুন।

আপনার প্রয়োজনীয়তম ইউজারগুলো যোগ করার জন্য এই ধাপটি রিপিট করুন। তারপর OK ক্লিক করুন এবং উপরের Members লিস্টবক্সে মেম্বাররা দেখতে পাবেন। OK ক্লিক করুন এবং এখন আপনি sudo GUI এবং কমান্ড ব্যবহার করতে পারবেন। আপনি যদি কোনো প্রোগ্রামে রাইট-ক্লিক করেন, তবে Sudo অপশনটি দেখতে পাবেন।

আপনি কমান্ড প্রম্পট খুলে sudo টাইপ করে এলিভেটেড পারমিশনে কমান্ড রান করতে পারেন।

সারাসরি, এটি খুব নিফ্টি এবং খুব ভালো কাজ করে। তবে দ্রষ্টব্য, এই নির্দিষ্ট প্রোগ্রাম খুব উপযোগী প্রোগ্রাম বা প্রসেস লঞ্চ করার জন্য রাইট-ক্লিক বা কমান্ড প্রম্পটের মাধ্যমে, কিন্তু এটি কমান্ড লাইন অ্যাপ্লিকেশন রান করার জন্য নয়। উদাহরণস্বরূপ, আপনি যদি sudo mkdir "c:\Program Files\new" করতে চান, তবে Sudo for Windows-এ এটি কাজ করবে না। সে ফাংশনালিটির জন্য আরেকটি প্রোগ্রাম আছে একই নামে কিন্তু ভিন্ন ডেভলপারের। নিচে পড়ুন।
Sudo for Windows — Luke Sampson
আরেকটি ডেভলপার একটি অন্য Sudo for Windows লিখেছেন যা কমান্ড লাইন অ্যাপ্লিকেশনও এক্সিকিউট করতে দেয়। তাহলে C:\Program Files-এ নতুন ফোল্ডার তৈরির উদাহরণে ফিরে যাই। ডিফল্টভাবে এটি করা যায় না।

উপরে আমি PowerShell ব্যবহার করছি, কিন্তু কমান্ড প্রম্পটেও একই এরর আসবে। কিন্তু Sudo for Windows ইনস্টল করলে, কমান্ডের সামনে শুধু 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 স্ক্রিপ্টিং-এর জন্য উপযোগী কারণ আপনাকে রাইট-ক্লিক করে কমান্ড প্রম্পট অ্যাডমিনিস্ট্রেটর হিসেবে রান করার প্রসেস স্ক্রিপ্ট করার চিন্তা করতে হয় না।
Elevation PowerToys for Windows
যারা কমান্ড লাইনে অনেক কাজ করেন বা স্ক্রিপ্ট এবং ব্যাচ ফাইলগুলোর সাথে কাজ করেন, তাদের জন্য Elevation PowerToys for Windows পেজে বেশ কিছু উপযোগী টুল এবং স্ক্রিপ্ট রয়েছে।

স্ক্রিপ্ট এলিভেশন পাওয়ার টয়ها UAC-এর ফ্রাস্ট্রেটিং দিকগুলো কাটতে তৈরি করা হয়েছিল যখন কমান্ড লাইন থেকে প্রোগ্রাম এলিভেট করতে হয় বা স্ক্রিপ্ট অ্যাডমিনিস্ট্রেটর হিসেবে রান করতে হয়।
আশা করি এই টুল ও প্রোগ্রামগুলো আপনাকে অনুভব করাবে যে আপনি আসলে উইন্ডোজে sudo ব্যবহার করছেন। এর কোনো পায়ারফেক্ট রিপ্লেসমেন্ট নেই, কিন্তু বেশ কিছু অপশন আছে যা খুব কাছাকাছি। আপনি যদি অন্য কিছু ব্যবহার করেন প্রোগ্রাম, কমান্ড বা স্ক্রিপ্ট এলিভেট করার জন্য উইন্ডোজে, তবে কমেন্টে জানান। উপভোগ করুন!