লিনাক্স টার্মিনালে রুট সেশন পেতে বিভিন্ন উপায় রয়েছে। এটি কিছু বিভ্রান্তি তৈরি করতে পারে, কারণ বেশিরভাগ প্রারম্ভিক ব্যবহারকারী যারা রুট সুবিধা পেতে চাইছেন তারা হয়তো জানেন না যে প্রতিটি কমান্ড কীভাবে রুট অ্যাক্সেস পেতে পারে, তারা কীভাবে আলাদা এবং কখন এই পার্থক্যগুলি গুরুত্বপূর্ণ। এখানে আমরা একটি টার্মিনালে রুট অ্যাক্সেস পেতে ব্যবহৃত বিভিন্ন কমান্ডের প্রতিটিকে আলাদা করি, কীভাবে তারা রুট লাভ করে, কখন সেগুলি ব্যবহার করতে হয় এবং এর মধ্যে সবকিছু ব্যাখ্যা করি।
su
su
কমান্ডটি বর্তমান ব্যবহারকারীকে প্রতিস্থাপন করে যা সিস্টেমটি শেলটিতে ব্যবহার করছে।
আপনি su
টাইপ করে যেকোনো ব্যবহারকারীর কাছে যেতে পারেন এবং এর পরে একটি ব্যবহারকারীর নাম যোগ করুন। এটি সিস্টেমটিকে বর্তমান ব্যবহারকারীকে নির্দিষ্ট একটিতে স্যুইচ করতে (এবং মূলত লগ আউট করতে) বলবে। বিকল্পভাবে, su
কমান্ড su
প্রবেশ করে রুট অ্যাক্সেস পেতে পারে কমান্ডের পরে কিছু উল্লেখ না করে।
"su" সবচেয়ে ভালো ব্যবহার করা হয় যখন কোনো ব্যবহারকারী সিস্টেমে রুট অ্যাকাউন্টে সরাসরি অ্যাক্সেস চায়। এটি sudo
এর মধ্য দিয়ে যায় না বা এরকম কিছু। পরিবর্তে, আপনাকে রুট ব্যবহারকারীর পাসওয়ার্ড লিখতে বলা হয়েছে কারণ আপনি আক্ষরিক অর্থে এটিতে লগ ইন করছেন। উপরন্তু, রুট অ্যাক্সেস লাভের অন্যান্য উপায়ে রুট হোম ডিরেক্টরি এবং রুট পরিবেশে অ্যাক্সেস পাওয়ার সুবিধা নেই৷
সুডো সু
এই কমান্ডটি রুট-এর বিপরীতে বর্তমান ব্যবহারকারীর পাসওয়ার্ড চায়।
এটি মূলত su
চালানোর মতই শেলের মধ্যে, একটি গুরুত্বপূর্ণ পার্থক্যের জন্য সংরক্ষণ করুন। সিস্টেমকে সরাসরি "ব্যবহারকারীদের স্যুইচ করতে" বলার পরিবর্তে, আপনি এটিকে রুট হিসাবে "su" কমান্ড চালাতে বলছেন। যখন sudo su
চালানো হয়, “.profile,” “.bashrc” এবং “/etc/profile” শুরু হবে, অনেকটা su
চালানোর মতো (বা su root
) যদি কোনো কমান্ড sudo
দিয়ে চালানো হয় এর সামনে, এটিকে রুট সুবিধা দেওয়া হয়।
যদিও "sudo su" এবং "su," sudo su
এর মধ্যে একটি বড় পার্থক্য নেই একটি গুরুত্বপূর্ণ কারণের জন্য এখনও একটি খুব দরকারী কমান্ড:যখন কোনও ব্যবহারকারী একটি সিস্টেমে রুট অ্যাক্সেস পেতে "su" চালান, তখন তাদের অবশ্যই রুট পাসওয়ার্ড জানতে হবে। রুট sudo su
দিয়ে দেওয়া হয়েছে বর্তমান ব্যবহারকারীর পাসওয়ার্ড অনুরোধ করে। এটি রুট পাসওয়ার্ড ছাড়াই রুট লাভ করা সম্ভব করে যা নিরাপত্তা বাড়ায়।
sudo -i
sudo -i
ব্যবহার করে কার্যত sudo su
এর মতই একটি ব্যতিক্রম সহ কমান্ড:এটি রুট ব্যবহারকারীর সাথে সরাসরি ইন্টারঅ্যাক্ট করে না।
অনেকটা sudo su
এর মত , -i
পতাকা একটি ব্যবহারকারীকে রুট অ্যাকাউন্টের পাসওয়ার্ড না জেনেই একটি রুট পরিবেশ পেতে অনুমতি দেয়। sudo -i
এছাড়াও sudo su
ব্যবহার করার মতো , যেহেতু এটি সমস্ত পরিবেশগত ফাইল (.প্রোফাইল, ইত্যাদি) পড়বে এবং শেলের ভিতরে পরিবেশ সেট করবে৷
যেখানে এটি "sudo su" থেকে আলাদা তা হল sudo -i
রুট ব্যবহারকারীর সাথে সরাসরি ইন্টারঅ্যাক্ট না করেই রুট এবং রুট পরিবেশ অর্জনের একটি অনেক পরিষ্কার উপায়। স্পষ্ট করার জন্য:sudo su
দিয়ে আপনি একাধিক রুট setuid
ব্যবহার করছেন পটভূমিতে কমান্ড। পরিবেশগত ভেরিয়েবলগুলি কী রাখা হবে এবং কোনগুলি পরিবর্তন করা হবে (মূল পরিবেশে অদলবদল করার সময়) এটি নির্ধারণ করা এটিকে আরও চ্যালেঞ্জিং করে তোলে। এটি sudo -i
এর সাথে সত্য নয় . এই কারণে, বেশিরভাগ লোকেরা এটিকে সরাসরি লগ ইন না করেই রুট অর্জনের পছন্দের পদ্ধতি হিসাবে দেখেন।
sudo -s
এই কমান্ডটি আপনার $SHELL ভেরিয়েবলের সাথে একটি শেলকে সমন করে।
-s
"sudo" কমান্ডের জন্য স্যুইচ বর্তমান ব্যবহারকারীর এক্সিকিউটিং কমান্ডের $SHELL ভেরিয়েবল পড়ে। এই কমান্ডটি এমনভাবে কাজ করে যেন ব্যবহারকারী sudo /bin/bash
চালাচ্ছে . Sudo -s
একটি "নন-লগইন" শৈলী শেল। sudo -i
এর মতো একটি কমান্ডের বিপরীতে অথবা sudo su
, সিস্টেম কোন পরিবেশগত ফাইল পড়া হবে না. যখন একজন ব্যবহারকারী শেলকে sudo -s
চালাতে বলে , এটি রুট লাভ করে কিন্তু ব্যবহারকারী বা ব্যবহারকারীর পরিবেশ পরিবর্তন করবে না। আপনার বাড়ি রুট হোম হবে না, ইত্যাদি।
এই কমান্ডটি সর্বোত্তমভাবে ব্যবহার করা হয় যখন ব্যবহারকারী রুট এ স্যুইচ করতে চায় না কিন্তু তার $SHELL পরিবেশ মান সহ একটি ইন্টারেক্টিভ শেল চায়। উপরের অন্যান্য কমান্ডগুলি রুট অ্যাক্সেস লাভের কথা বলেছে কিন্তু রুট পরিবেশগত ফাইলগুলিকে স্পর্শ করে এবং ব্যবহারকারীদের রুট-এ পূর্ণ অ্যাক্সেসের অনুমতি দেয় (যা একটি নিরাপত্তা সমস্যা হতে পারে)।
প্রায়শই জিজ্ঞাসিত প্রশ্নগুলি
1. আমি কোন কমান্ড ব্যবহার করব?
প্রতিটি কমান্ড এর ব্যবহার-কেস আছে. এখানে গুরুত্বপূর্ণ বিষয় হল প্রতিটি কমান্ড কী করে এবং কখন সেগুলি ব্যবহার করতে হবে তা বোঝা। এটি দাঁড়িয়েছে, sudo -i
মূল পরিবেশ লাভের সবচেয়ে ব্যবহারিক, পরিষ্কার উপায়। অন্যদিকে, যারা sudo -s
ব্যবহার করছেন তারা দেখতে পাবে যে তারা রুট এনভায়রনমেন্ট স্পর্শ করার ক্ষমতা ছাড়াই একটি রুট শেল অর্জন করতে পারে, এমন কিছু যা নিরাপত্তা সুবিধা যোগ করেছে।
2. রুট অ্যাক্সেস করা কি আমার সিস্টেমের ক্ষতি করতে পারে?
কিছু ক্ষেত্রে, হ্যাঁ। একটি নির্দিষ্ট টার্মিনাল সেশনে আপনার সবকিছুর জন্য রুট অ্যাক্সেস করতে হবে তা নিশ্চিত না হলে, sudo
টাইপ করা প্রায়শই ভাল আপনি যদি সেই নির্দিষ্ট কমান্ডের জন্য রুট অ্যাক্সেস করতে চান তবে একটি কমান্ড অনুসরণ করুন। উদাহরণস্বরূপ, sudo apt install vlc
টাইপ করা লিনাক্সের যেকোন ডেবিয়ান-ভিত্তিক সংস্করণে অপারেটিং সিস্টেমকে রুট অ্যাক্সেস করতে বলবে শুধুমাত্র VLC ইনস্টল করার জন্য APT প্যাকেজ ম্যানেজার চালানোর জন্য।
sudo -i
চালানোর জন্য একটি অত্যন্ত গুরুত্বপূর্ণ সতর্কতা অথবা sudo
টাইপ করার বিপরীতে আমরা আগে আলোচনা করেছি অন্য কোনো বৈকল্পিক প্রতিটি কমান্ডের আগে আপনি রুট হিসাবে চালাতে চান যে পূর্ববর্তীটি আপনার কমান্ড ইতিহাস /var/log/auth.log
এ লগ করে না . আপনি যদি বিশৃঙ্খলা করেন, আপনি ফিরে যেতে পারবেন না এবং আপনি যা করেছেন তা পরীক্ষা করতে পারবেন না যাতে আপনি এটি সংশোধন করতে পারেন। আপনাকে মেমরির বাইরে কাজ করতে হবে, কারণ রুট সেশনগুলি রেকর্ড করা হয় না।
3. যখন আমি একটি কমান্ডের আগে "sudo" টাইপ করি, তখন আমি "sudo su" এর কোন রূপটি চালাচ্ছি?
sudo
টাইপ করে একটি কমান্ড চালানোর জন্য (অর্থাৎ, আপনি যে কমান্ডটি চালাতে চান সেই লাইনে আপনি এটি টাইপ করছেন), আপনি মূলত এটি একটি ইন্টারেক্টিভ রুট শেলের অধীনে চালাচ্ছেন। এটি sudo -s
হবে স্বতন্ত্র কমান্ড করে।
র্যাপিং আপ
এই তালিকায় সত্যিই একটি কমান্ড নেই যা 100% সেরা। যেহেতু ব্যবহারকারীরা কমান্ড লাইনের সাথে আরও স্বাচ্ছন্দ্য বোধ করে, তাদের রুট অর্জনের প্রতিটি উপায় (এবং অনেকগুলি আছে) বিবেচনায় নিতে হবে এবং সুবিধা এবং অসুবিধাগুলি বিবেচনা করতে হবে এবং সেই অনুযায়ী কাজ করতে হবে। আমি আশা করি এই নিবন্ধটির সাহায্যে এই সিদ্ধান্তগুলি নেওয়া সহজ হবে। আপনি যদি কমান্ড সম্পর্কে আরও জানতে চান, একটি ডিরেক্টরির বিষয়বস্তু তালিকাভুক্ত করার জন্য দরকারী Linux কমান্ডের এই নিবন্ধটি পড়ুন৷