
যেকোনো GNU/Linux সিস্টেমে, মূল ব্যবহারকারী ইনি সেই পদাধিকারী যাকে সবাই সম্মান করে (এবং আপনার তাকে কিছুটা ভয় পাওয়া উচিত)। এটি অন্যান্য সিস্টেমের 'অ্যাডমিনিস্ট্রেটর'-এর সমতুল্য, তবে পার্থক্য হলো এখানে অনুমতিগুলো এতটাই ব্যাপক যে ভুলভাবে টাইপ করা একটি কমান্ড কয়েক সেকেন্ডের মধ্যে সিস্টেমটিকে অচল করে দিতে পারে। রুট কী, রুট প্রিভিলেজ কী এবং কীভাবে সেগুলি পরিচালনা করতে হয়, তা সম্পূর্ণরূপে বুঝতে। একটি স্থিতিশীল ব্যবস্থা এবং সামান্যতম উস্কানিতেই ভেঙে পড়া একটি ব্যবস্থার মধ্যে এটিই পার্থক্য গড়ে দেয়।
তাছাড়া, প্রতিটি ডিস্ট্রিবিউশনের এই সুবিধাগুলো পরিচালনা করার একটি নির্দিষ্ট পদ্ধতি রয়েছে। উবুন্টু, ডেবিয়ান, ভয়েড, ওপেনসুস এবং অন্যান্য ডিস্ট্রিবিউশন রুট অ্যাকাউন্টের সাথে এগুলোর আচরণ হুবহু একরকম হয় না, যেমন গ্রুপগুলোর ক্ষেত্রে চাকা অথবা ফাইলের সাথে sudoersআপনি যদি সার্ভার (ভিপিএস, ক্লাউড বা ডেডিকেটেড) পরিচালনা করেন অথবা কেবল আপনার লিনাক্স সিস্টেমটি সহজে চালাতে চান, তাহলে রুট ইউজার এবং `root` কমান্ড কীভাবে কাজ করে তা আপনার বোঝা প্রয়োজন হবে। sudo, ব্যবহার su এবং প্রশাসনিক অনুমতিসমূহের ব্যবস্থাপনা।
লিনাক্সে রুট ইউজার বলতে ঠিক কী বোঝায়?
লিনাক্স এবং অন্যান্য ইউনিক্স-সদৃশ সিস্টেমে, ব্যবহারকারী রুট হলো UID 0 যুক্ত অ্যাকাউন্ট।বিশেষ শনাক্তকারী যা সিস্টেমের উপর পূর্ণ নিয়ন্ত্রণ প্রদান করে। এই অ্যাকাউন্টটি সাধারণত এর সাথেও যুক্ত থাকে জিআইডি ০ (প্রধান দল) rootযা আপনাকে কোনো সীমাবদ্ধতা ছাড়াই যেকোনো ফাইল পড়া, পরিবর্তন করা বা মুছে ফেলা, প্রসেস পরিচালনা করা, অনুমতি পরিবর্তন করা এবং ফাইল সিস্টেমের যেকোনো অংশে হস্তক্ষেপ করার সুযোগ দেয়।
যখন আমরা “মূল হওয়া” নিয়ে কথা বলি, তখন আমরা বোঝাই লগ ইন করুন অথবা একটি শেল পান যেটি UID 0 দিয়ে চলে। এটা কেবল "বেশি অনুমতি থাকা" নয়: এটা সেই অ্যাকাউন্টটি ব্যবহার করা যার সিস্টেমের উপর নিরঙ্কুশ ক্ষমতাসেই পরিচয়ের অধীনে আপনি যা কিছু করেন, তা কোনো বাধা ছাড়াই সম্পাদিত হয়।
সেটা ভিন্ন ব্যাপার। রুট প্রিভিলেজ আছেএর মানে হলো যে আপনার নিয়মিত ব্যবহারকারী (উদাহরণস্বরূপ, যার UID 1000) বিভিন্ন টুলের মাধ্যমে, যেমন sudoএর মাধ্যমে আপনি আপনার সেশন আইডেন্টিটি স্থায়ীভাবে পরিবর্তন না করেই, ‘রুট ব্যবহারকারীর মতো’ নির্দিষ্ট কিছু কমান্ড চালাতে পারবেন। বাস্তবে, আপনি একই প্রশাসনিক কাজগুলো আরও নিয়ন্ত্রিত সময়সীমার মধ্যে এবং উন্নততর শনাক্তকরণযোগ্যতার সাথে সম্পাদন করতে পারবেন।
রুট হওয়া এবং রুটের বিশেষাধিকার থাকার মধ্যে পার্থক্য
ধারণাগুলোকে স্পষ্টভাবে আলাদা করা গুরুত্বপূর্ণ, কারণ রুট হিসেবে লগ ইন করা এবং রুট প্রিভিলেজ নিয়ে কোনো কিছু চালানো একই জিনিস নয়।এইখানেই UID 0 অ্যাকাউন্ট এবং প্রিভিলেজ এসকেলেশন মেকানিজম (যেমন sudo, su, wheel-এর মতো গ্রুপ ইত্যাদি) কাজে আসে।
যখন আপনি রুট ব্যবহারকারী (ইউআইডি ০, জিআইডি ০) এবং আপনি একটি করেন idআপনি এইরকম কিছু দেখতে পাবেন:
uid=0(root) gid=0(root) groups=0(root)
এর মানে হলো, বর্তমান সেশনটি রুটের এবং আপনি যা কিছু সম্পাদন করবেন, তার সেই অনুমতিগুলোই থাকবে। কিছু টাইপ করার প্রয়োজন নেই। sudo শূন্যের সামনে: যেকোনো কমান্ডের অবাধ স্বাধীনতা আছে।এই কারণেই শিকড়ের খোলের মধ্যে বেশিক্ষণ থাকাটা খুবই বিপজ্জনক।
তবে, যখন আপনি ব্যবহার করেন উবুন্টুসাধারণত, আপনি আপনার 'সাধারণ' ব্যবহারকারীই (যেমন, UID 1000) থাকবেন, কিন্তু কমান্ডটি সাময়িকভাবে UID 0 হিসেবে চলবে। যদি আপনি করেন:
sudo apt update
আপনার সেশনটি আপনার ব্যবহারকারীরই থাকে, কিন্তু শুধুমাত্র সেই নির্দিষ্ট কমান্ডটি এটি প্রশাসক অধিকার সহ চলে। আপনি যদি এটি চালু করেন, তাহলেও একই কথা প্রযোজ্য:
sudo systemctl restart apache2
উভয় ক্ষেত্রেই, প্রমাণীকরণ লগে প্রদর্শিত পরিচয়টি নির্দেশ করে কোন ব্যবহারকারী এটি ব্যবহার করেছে। sudo, যা অবদান রাখে শনাক্তকরণযোগ্যতা এবং ব্যক্তিগত দায়িত্ব.
হুইল, সুডোয়ার্স এবং ম্যানেজমেন্ট গ্রুপের মামলা
কিছু ডিস্ট্রিবিউশনে (যেমন ভয়েড লিনাক্স, বা বিএসডি-র অনেক ডেরিভেটিভ) একটি গ্রুপ রয়েছে চাকা, যা ব্যবহৃত হয় কারা sudo ব্যবহার করতে পারবে তা নিয়ন্ত্রণ করুনঅন্যান্য ক্ষেত্রে (যেমন উবুন্টু এবং ডেবিয়ান তাদের সাধারণ কনফিগারেশনে) গ্রুপটি ব্যবহৃত হয় উবুন্টু সেই ক্ষমতা প্রদান করা। প্রতিটি ডিস্ট্রো এটিকে নিজস্ব উপায়ে সাজায়, কিন্তু মূল ধারণাটি একই: শুধুমাত্র নির্দিষ্ট গোষ্ঠীর অন্তর্ভুক্ত ব্যবহারকারীরাই বিশেষাধিকার বৃদ্ধি করতে পারে।
যদি ভয়েড লিনাক্স আপনাকে আপনার ব্যবহারকারীকে যোগ করতে বলে চাকাসাধারণত এইরকম কিছু চালানোই স্বাভাবিক:
sudo usermod -aG wheel tu_usuario
তারপর, করার সময় idসাবগ্রুপগুলোর মধ্যে হুইল গ্রুপটি তালিকাভুক্ত থাকা উচিত। যদি এটি দেখা না যায়, তাহলে হতে পারে যে আপনি লগ আউট না করা পর্যন্ত পরিবর্তনটি প্রয়োগ করা হবে না।অথবা সিস্টেমটি কিছুটা ভিন্ন উপায়ে অ্যাক্সেস পরিচালনা করে (উদাহরণস্বরূপ, PAM বা একটি নির্দিষ্ট কনফিগারেশনের উপর নির্ভর করে)। sudo o su যার জন্য সব ক্ষেত্রে চাকা অন্তর্ভুক্ত করার প্রয়োজন হয় না)।
উবুন্টু বা ডেবিয়ানের মতো সিস্টেমে, কী গ্রুপ সাধারণত উবুন্টুএকজন ব্যবহারকারী যোগ করতে:
sudo adduser nombre_de_usuario sudo
ফাইলটি সম্পাদনা করার মাধ্যমে সর্বোচ্চ স্তরের নিয়ন্ত্রণ অর্জন করা হয়। জন্য / etc / sudoers (অথবা ফাইলগুলিতে) /etc/sudoers.d/) সর্বদা ব্যবহার করে visudoযাতে আপনি পারেন প্রতিটি ব্যবহারকারী বা গোষ্ঠী ঠিক কোন কোন কমান্ড চালাতে পারবে তা নির্ধারণ করুন। সম্পূর্ণ অবাধ ক্ষমতা দেওয়ার পরিবর্তে, রুট প্রিভিলেজ সহ।
উবুন্টুতে রুট: নিরাপত্তা নীতি এবং sudo-এর ব্যবহার
উবুন্টু একটি বেশ সুস্পষ্ট দর্শন অনুসরণ করে: রুট অ্যাকাউন্টটি বিদ্যমান, কিন্তু এটি সরাসরি লগ ইন করার জন্য ব্যবহৃত হয় না।সিস্টেম ইনস্টলেশনের সময়, যেকোনো ইউনিক্স সিস্টেমের মতোই রুটের ইউআইডি (UID) ০ থাকে, কিন্তু লগ ইন করার জন্য কোনো ব্যবহারযোগ্য পাসওয়ার্ড বরাদ্দ করা হয় না। এর পরিবর্তে, নিবিড় ব্যবহার sudo.
এর মানে হল, ডিফল্টরূপে, পাসওয়ার্ড দিয়ে আপনি রুট হিসেবে TTY বা গ্রাফিক্যাল ইন্টারফেসে প্রবেশ করতে পারবেন না।কারণ সেই ব্যবহারকারীর জন্য কোনো পাসওয়ার্ড সেট করা নেই। এই সিদ্ধান্তটি ব্রুট-ফোর্স আক্রমণের ঝুঁকি কমায় এবং মানুষকে অকারণে সারাদিন রুট হিসেবে কাজ করা থেকে বিরত রাখে।
উবুন্টুতে স্বাভাবিক প্রক্রিয়াটি হলো: আপনি আপনার ইউজার দিয়ে লগ ইন করেন, সেই ইউজারটি গ্রুপের অন্তর্ভুক্ত। উবুন্টুএবং যখন আপনার কোনো প্রশাসনিক কাজ করার প্রয়োজন হয়, তখন আপনি কমান্ডটি চালান sudo এবং আপনি লিখুন আপনার নিজের পাসওয়ার্ডরুট অ্যাকাউন্ট নয়। এভাবে, সিস্টেম রেকর্ড রাখে কে কখন কী করেছে এবং কোন কমান্ড দিয়ে তা করেছে।
যদি কোনো সময়ে আপনি রুট হিসেবে সম্পূর্ণ শেল পেতে চান (উদাহরণস্বরূপ, ধারাবাহিকভাবে একাধিক কাজ সম্পাদন করার জন্য), তাহলে আপনি এটি ব্যবহার করতে পারেন:
sudo -i
sudo su -
উভয়ই আপনাকে একটি দেবে ইন্টারেক্টিভ রুট শেলএটি সাধারণত ব্যবহারকারীর লগইন পরিবেশ লোড করে। এই মোড থেকে বের হতে, কেবল চালান exit বা প্রেস Ctrl + D.
রুট ব্যবহারকারী কি সর্বদা উপলব্ধ থাকে?
বন্টনটি গুরুত্বপূর্ণ নয়: রুট অ্যাকাউন্টটি অভ্যন্তরীণভাবে সর্বদা বিদ্যমান থাকে। কারণ এটির UID হলো ০। ডিস্ট্রোর উপর নির্ভর করে যা যা পরিবর্তিত হয় তা হলো, সেই অ্যাকাউন্টে একটি বৈধ পাসওয়ার্ড আছে কি না, সরাসরি লগইন করার অনুমতি আছে কি না, এবং কী কী শর্তে এটি ব্যবহার করা যাবে।
openSUSE-এর ক্ষেত্রে (উদাহরণস্বরূপ, Tumbleweed), ইনস্টলেশনের সময় আপনি রুট পাসওয়ার্ডটি ফাঁকা রাখতে পারেন অথবা সিস্টেমটিকে এমনভাবে কনফিগার করতে পারেন যাতে সাধারণ ব্যবহারকারী প্রশাসনিক সুবিধা পায়। sudoএর ফলে হতে পারে রুট "সক্রিয়" কিনা নিশ্চিত নই। অথবা নাও হতে পারে। কিন্তু মূল অ্যাকাউন্টটি তো সবসময়ই থাকে; শুধু পার্থক্য এই যে... আপনি এটি দিয়ে প্রমাণীকরণ করতে পারবেন না কারণ পাসওয়ার্ড সেট করা হয়নি অথবা সিস্টেমটি PAM বা লগইন নীতি ব্যবহার করে এটিকে ব্লক করে দেয়।
যখন আপনি ব্যবহার করেন su রুটে প্রবেশ করতে এবং রুট পাসওয়ার্ডের পরিবর্তে আপনার ব্যবহারকারীর পাসওয়ার্ড দিতে, সাধারণত আপনাকে যা করতে হবে কাজ করে নাযদি না ডিস্ট্রোতে এটি কনফিগার করা থাকে su রুটের পরিবর্তে সুডোয়ার ব্যবহারকারীর পাসওয়ার্ড গ্রহণ করা (তুলনামূলকভাবে কম ব্যবহৃত)। সবচেয়ে সাধারণভাবে, su আপনি যদি একটি সাধারণ কমান্ড চালান, তবে এটি টার্গেট ইউজারের পাসওয়ার্ড, অর্থাৎ রুট পাসওয়ার্ড চাইবে। su.
তাছাড়া, আপনি যদি লক্ষ্য করেন যে করার সময় su রুট হতে গেলে, আপনার শেল আপনার সাধারণ ব্যবহারকারীর ফাংশন বা অ্যালিয়াসগুলো পড়া চালিয়ে যায়; আপনি হয়তো এর মতো কোনো একটি রূপ ব্যবহার করছেন, যেমন su হাইফেন ছাড়া (su সামনে su -), যা এটিকে তৈরি করে রুট লগইন পরিবেশ সম্পূর্ণরূপে লোড হয় নাএই কারণেই আপনি আপনার ব্যবহার চালিয়ে যেতে পারেন .bashrc অথবা আপনার zsh কনফিগারেশন, যা রুট অ্যাকাউন্টের জন্য অস্তিত্বহীন ফাংশনগুলিতে ত্রুটি তৈরি করছে।
SSH এর মাধ্যমে রুট হিসেবে রিমোট অ্যাক্সেস
অনেক সার্ভারে, আপনি যখন একটি ভিপিএস বা ডেডিকেটেড সার্ভার ভাড়া করেন, তখন প্রোভাইডার আপনাকে দেয় রুট হিসেবে সরাসরি SSH অ্যাক্সেসপাসওয়ার্ড দিয়ে অথবা, আরও ভালো হয়, একটি SSH কী দিয়ে। লিনাক্স সিস্টেম থেকে সংযোগ স্থাপন করা খুবই সহজ:
ssh root@IP-del-servidor
উইন্ডোজে, ক্লায়েন্টের মতো কিছু ব্যবহার করা সাধারণ, যেমন পুটিংআপনাকে শুধু ফিল্ডটিতে সার্ভারের আইপি অ্যাড্রেসটি লিখতে হবে। হোস্ট নাম, ক্লিক করুন খোলা এবং, যখন টার্মিনাল উইন্ডোটি প্রদর্শিত হয়, প্রদত্ত পাসওয়ার্ড দিয়ে রুট হিসেবে লগ ইন করুন। অথবা কনফিগার করা কী দিয়ে।
আপনি সার্ভারের অন্য যেকোনো ব্যবহারকারীর সাথেও সংযোগ করতে পারেন, এবং একবার ভিতরে প্রবেশ করলে, sudo বা su ব্যবহার করে রুট অ্যাক্সেস লাভ করুন যদি সেই ব্যবহারকারী উপযুক্ত গ্রুপগুলির অন্তর্ভুক্ত হন অথবা তার সংশ্লিষ্ট কনফিগারেশন থাকে /etc/sudoersসেক্ষেত্রে, কোনো নির্দিষ্ট প্রশাসনিক কাজ করার প্রয়োজন না হওয়া পর্যন্ত আপনি সীমিত অনুমতি নিয়ে কাজ করেন।
অসাবধানতাবশত রুট ব্যবহারের ঝুঁকি
রুট প্রিভিলেজ অত্যন্ত উপকারী, কিন্তু এটি একটি দ্বিধারী তলোয়ারের মতোও। যেকোনো মুদ্রণ ত্রুটি বা ভুল বোঝা নির্দেশ এর ফলে সম্পূর্ণ ডেটা নষ্ট হয়ে যেতে পারে, সিস্টেম অস্থিতিশীল হয়ে পড়তে পারে, অথবা এমন নিরাপত্তা ত্রুটি দেখা দিতে পারে যা আপনার মেশিনকে ঝুঁকিপূর্ণ করে তোলে।
সবচেয়ে স্পষ্ট বিপদগুলোর মধ্যে একটি হলো ভুলবশত সিস্টেম ফাইল মুছে ফেলা বা পরিবর্তন করারুট হিসেবে, কোনো "আপনি কি নিশ্চিত?" বা রিসাইকেল বিন নেই। একটি কমান্ড যেমন:
sudo rm -rf /
অথবা ভুল বানানের কোনো রূপ (ভুল পাথ, অতিরিক্ত স্পেস, ভুল জায়গায় ব্যবহৃত ওয়াইল্ডকার্ড ইত্যাদি সহ) হতে পারে নিশ্চিতকরণ না চেয়েই ফাইল সিস্টেমের অর্ধেক মুছে ফেলুনআর আরোগ্য লাভ, যদি আদৌ সম্ভব হয়, তবে তা সাধারণত জটিল এবং খুবই আংশিক হয়।
বাস্তবায়নের বিষয়টিও রয়েছে। রুট অনুমতি সহ ইন্টারনেট থেকে ডাউনলোড করা স্ক্রিপ্টযদি কোনো স্ক্রিপ্ট ক্ষতিকারক বা ত্রুটিপূর্ণভাবে প্রোগ্রাম করা হয়, তবে এটি আপনার অজান্তেই সংবেদনশীল ফাইল মুছে ফেলতে, গুরুত্বপূর্ণ সেটিংস পরিবর্তন করতে, ম্যালওয়্যার ইনস্টল করতে, সুরক্ষা ব্যবস্থা নিষ্ক্রিয় করতে বা ব্যাকডোর যুক্ত করতে পারে। এবং যদি আপনি এটি চালু করে থাকেন sudoআপনি তাকে সীমাহীন অনুমতি দিয়েছেন।
একাধিক সার্ভার পরিবেশে (প্রোডাকশন, টেস্টিং, ডেভেলপমেন্ট) একই সাথে একাধিক টার্মিনালে রুট হিসেবে কাজ করলে ঝুঁকি বেড়ে যায়। ভুল মেশিনে একটি কমান্ড চালানপ্রোডাকশনে ভুলবশত করা একটি সাধারণ রিস্টার্ট বা ডিলিট করার কাজও কোনো সার্ভিসকে অফলাইন করে দিতে পারে এবং একটি বড় ধরনের সমস্যা সৃষ্টি করতে পারে।
আরও খারাপ ব্যাপার হলো, যখন আপনি সবসময় রুট হিসেবে কাজ করতে অভ্যস্ত হয়ে যান, তখন সহজেই অতিরিক্ত নিশ্চিন্ত হয়ে যাওয়া এবং আপনি যা লেখেন তা দুবার যাচাই না করাসবকিছু গণ্ডগোল হওয়া এড়ানোর জন্য, উচ্চতর বিশেষাধিকার নিয়ে কাটানো সময় কমানো এবং এন্টার চাপার আগে কমান্ডগুলো সাবধানে পর্যালোচনা করা অত্যন্ত গুরুত্বপূর্ণ।
রুট এবং নিরাপত্তা: আক্রমণ, লগ এবং নিরীক্ষা
নিরাপত্তার দৃষ্টিকোণ থেকে, রুট হলো একটি ব্যর্থতার একক বিন্দুযদি কোনো আক্রমণকারী রুট প্রিভিলেজ অর্জন করে (ক্রেডেনশিয়াল চুরি করে, কোনো দুর্বলতার সুযোগ নিয়ে, বা আপনাকে প্রতারিত করে কোনো ক্ষতিকর কিছু চালাতে বাধ্য করে), তবে তারা মেশিনটির উপর সম্পূর্ণ নিয়ন্ত্রণ লাভ করে।
ইন্টারনেটে উন্মুক্ত সার্ভারগুলিতে, শুধুমাত্র পাসওয়ার্ড ব্যবহার করে SSH-এর মাধ্যমে সরাসরি রুট অ্যাক্সেস সক্ষম করা হলে তা নতুন সম্ভাবনার দ্বার উন্মোচন করে। ক্রমাগত ব্রুট-ফোর্স আক্রমণস্বয়ংক্রিয় বটগুলো লগ ইন করার চেষ্টা করে root ক্রমাগত পাসওয়ার্ডের বিভিন্ন সংমিশ্রণ পরীক্ষা করা হচ্ছে। যদি পাসওয়ার্ডটি দুর্বল হয় বা অন্য পরিষেবাগুলিতে পুনরায় ব্যবহার করা হয়, তাহলে আপনার সর্বনাশ।
তাছাড়া, আপনি যদি সবসময় রুট হিসেবে কাজ করেন, তাহলে সেই পরিচয়ে চলমান যেকোনো দুর্বল অ্যাপ্লিকেশন (যেমন ব্রাউজার, ত্রুটিপূর্ণভাবে কনফিগার করা ওয়েব সার্ভার ইত্যাদি) একটি প্রবেশপথ হিসেবে কাজ করতে পারে। যেইমাত্র অ্যাপ্লিকেশনটি হ্যাক হয়, আক্রমণকারী তার সমস্ত অনুমতি পেয়ে যায়।
আরেকটি গুরুত্বপূর্ণ সমস্যা হল ট্রেসেবিলিটির অভাবsudo ব্যবহার করার সময় প্রশাসনিক কার্যকলাপগুলো লগ করা হয়। /var/log/auth.log অথবা জার্নালে (journalctl): কোন ব্যবহারকারী কখন কোন কমান্ড চালু করেছে। অন্যদিকে, যদি সবাই সরাসরি রুট হিসেবে লগ ইন করে, তাহলে লগগুলিতে কেবল "রুট এটি করেছে" লেখা থাকে, কিন্তু এর পিছনে আসলে কে ছিল তা নির্ধারণ করা যায় না।
যেসব পরিবেশে নিরাপত্তা মানদণ্ড (ISO 27001, PCI DSS এবং অনুরূপ) আবশ্যক, সেখানে শনাক্তকরণযোগ্যতা এবং ব্যক্তিগত দায়িত্ববোধ অত্যন্ত গুরুত্বপূর্ণ। sudo ব্যবহার না করে সবসময় root হিসেবে কাজ করলে অডিট আরও কঠিন হয়ে পড়ে।এটি সমস্যা সমাধানকে জটিল করে তোলে এবং প্রায়শই অনেক কমপ্লায়েন্স ফ্রেমওয়ার্কের জন্য প্রয়োজনীয় সর্বোত্তম অনুশীলনের পরিপন্থী হয়। অধিকন্তু, সুরক্ষিত হার্ডওয়্যারের ব্যবহার যেমন dev-tpm0 এবং TPM এটি সিস্টেমের অখণ্ডতা ও নিরীক্ষাযোগ্যতাকে শক্তিশালী করতে পারে।
রুট প্রিভিলেজ পাওয়ার উপায়
বাস্তবে, বেশিরভাগ আধুনিক ডিস্ট্রিবিউশন অ্যাডমিনিস্ট্রেটর প্রিভিলেজ অ্যাক্সেস করার জন্য তিনটি প্রধান পদ্ধতি ব্যবহার করে: উবুন্টু, su এবং সরাসরি লগইন (স্থানীয় বা দূরবর্তী)। প্রত্যেকটির নিজস্ব প্রেক্ষাপট এবং ঝুঁকি রয়েছে।
রুট প্রিভিলেজ সহ একটি একক কমান্ড কার্যকর করার জন্য, সবচেয়ে প্রচলিত উপায় হলো:
sudo comando argumentos
উদাহরণস্বরূপ:
sudo apt update
sudo apt install firefox
sudo systemctl restart apache2
sudo nano /etc/ssh/sshd_config
এর সাথে, আপনি স্থায়ীভাবে ব্যবহারকারী পরিবর্তন করেন না।শুধুমাত্র ওই কমান্ডটিই UID 0 দিয়ে চলে এবং কে এটি চালু করেছে তা রেকর্ড করে রাখে। বেশিরভাগ দৈনন্দিন প্রশাসনিক কাজের জন্য, এটিই সবচেয়ে নিরাপদ বিকল্প।
যদি আপনি পরপর বেশ কয়েকটি কমান্ড চালাতে চান এবং এর জন্য একটি আরও স্থায়ী রুট সেশনের প্রয়োজন হয়, তাহলে আপনি এটি ব্যবহার করতে পারেন:
sudo -i
sudo su -
এই কমান্ডগুলো আপনাকে একটি রুট শেল দেয়, যা সাধারণত রুট লগইন এনভায়রনমেন্ট (ভেরিয়েবল, PATH, ইত্যাদি) লোড করে। কিছু নির্দিষ্ট দীর্ঘ কাজের জন্য এটি খুবই সুবিধাজনক, কিন্তু শেষ করার সাথে সাথেই ওই মোডটি ত্যাগ করাই শ্রেয়। বিরূদ্ধে exitআপনি রুট হিসেবে যত কম সময় কাটাবেন, ভুল করার সম্ভাবনাও তত কম থাকবে।
রুট পাসওয়ার্ড সক্রিয় এবং পরিচালনা করুন
উবুন্টু এবং অন্যান্য ডিস্ট্রোতে, যদিও এটি নিরুৎসাহিত করা হয়, আপনি পারেন রুট অ্যাকাউন্টে একটি পাসওয়ার্ড নির্ধারণ করুন। যাতে এটি সরাসরি ব্যবহার করা যায়। সাধারণ কমান্ডটি হলো:
sudo passwd root
সিস্টেমটি প্রথমে আপনার ব্যবহারকারীর পাসওয়ার্ড চাইবে (ব্যবহার যাচাই করার জন্য)। sudoএবং তারপরে এটি আপনাকে রুটের জন্য নতুন পাসওয়ার্ডটি দুইবার জিজ্ঞাসা করবে। সেই মুহূর্ত থেকে, রুটের জন্য একটি নির্দিষ্ট পাসওয়ার্ড থাকবে। এবং, যদি প্রমাণীকরণ নীতিগুলি অনুমতি দেয়, আপনি স্থানীয়ভাবে লগ ইন করতে পারেন অথবা ব্যবহার করতে পারেন su ঐ কী-টি প্রবেশ করিয়ে। উদাহরণস্বরূপ, রাস্পবেরি পাই-এর মতো ডিভাইসে, এটি পরামর্শযোগ্য। ডিফল্ট পাসওয়ার্ড পরিবর্তন করুন.
যদি কোন সময় আপনি চান ব্লক রুট লগইন অ্যাকাউন্টটি ডিলিট না করেই, আপনি যা করতে পারেন:
sudo passwd -l root
এটি পাসওয়ার্ডটি নিষ্ক্রিয় করে (সম্পূর্ণরূপে মুছে না ফেলে), ফলে সরাসরি প্রবেশ করা যায় না। এটি পূর্বাবস্থায় ফিরিয়ে আনতে:
sudo passwd -u root
যাইহোক, বিশেষ করে উবুন্টুর ক্ষেত্রে, সাধারণ পরামর্শটি হলো দৈনন্দিন ব্যবহারের জন্য পাসওয়ার্ড সহ রুট ব্যবহার করবেন না।আপনার সাধারণ ইউজার অ্যাকাউন্ট দিয়ে কাজ চালিয়ে যাওয়া এবং প্রয়োজনমতো sudo ব্যবহার করাই অনেক বেশি যুক্তিযুক্ত।
রুটকে অনুমতি দেওয়া বা অস্বীকার করার জন্য SSH কনফিগারেশন
নিরাপত্তাজনিত কারণে, অনেক সার্ভার ইনস্টলেশনে অন্তর্ভুক্ত থাকে SSH এর মাধ্যমে রুট লগইন নিষ্ক্রিয় করা হয়েছেএই আচরণটি পরিবর্তন করতে (যদিও এটি আদর্শ নয়), আপনাকে OpenSSH কনফিগারেশন ফাইলটি সম্পাদনা করতে হবে: /etc/ssh/sshd_config.
সাধারণ পদ্ধতিটি হল:
- নিশ্চিত করুন যে রুটের একটি পাসওয়ার্ড আছে। যদি আপনি সেই প্রমাণীকরণ পদ্ধতিটি ব্যবহার করার পরিকল্পনা করেন:
sudo passwd root. - SSH সেটিংস সম্পাদনা করুন রুট প্রিভিলেজ সহ:
sudo nano /etc/ssh/sshd_config - নির্দেশিকাটি খুঁজুন (বা যোগ করুন)
PermitRootLoginএবং এটি সেট করুনyesযদি আপনি পাসওয়ার্ড দিয়ে সরাসরি রুট অ্যাক্সেসের অনুমতি দিতে চান। - SSH পরিষেবাটি পুনরায় চালু করুন পরিবর্তনগুলি প্রয়োগ করতে:
sudo systemctl restart ssh(osshd(বন্টনের উপর নির্ভর করে)।
দরজা খুব বেশি না খুলে যদি কিছুটা নমনীয়তার প্রয়োজন হয়, তাহলে সবচেয়ে বুদ্ধিমানের কাজ হলো ব্যবহার করা PermitRootLogin prohibit-password যাতে কেবল তারাই যারা গ্রহণ করে মূল প্রমাণীকরণ এবং পাসওয়ার্ড দিয়ে নয়। তা সত্ত্বেও, সাধারণত একজন সাধারণ ব্যবহারকারী হিসেবে লগ ইন করে তারপর ব্যবহার করাই শ্রেয়। sudo.
আপনি যদি নিরাপত্তা জোরদার করতে চান, তবে কেবল এই পদক্ষেপগুলি উল্টে দিন: sshd_config তুমি রাখ PermitRootLogin noসার্ভিসটি পুনরায় চালু করুন এবং, যদি চান, রুট অ্যাকাউন্টটি লক করুন। sudo passwd -l rootএটি তাদের বাধ্য করে সমস্ত রিমোট অ্যাডমিনিস্ট্রেশন অবশ্যই sudo প্রিভিলেজ সম্পন্ন নির্দিষ্ট ইউজারদের মাধ্যমে করতে হবে।পরিপূরক ব্যবস্থা হিসেবে, ব্যবহার করার কথা বিবেচনা করুন লিনাক্সে dm-verity সিস্টেমের অখণ্ডতা রক্ষা করার জন্য।
sudoers সম্পাদনা করুন এবং অন্যান্য ব্যবহারকারীদের রুট অনুমতি প্রদান করুন
মাঝে মাঝে আপনার একজন নতুন তৈরি করা ব্যবহারকারীকে সক্ষম করার প্রয়োজন হয়। রুট হিসাবে কমান্ড চালানউদাহরণস্বরূপ, ধরুন আপনি একজন ব্যবহারকারী তৈরি করেছেন। testftp বিরূদ্ধে useradd o adduserকিন্তু যখন আপনি ব্যবহার করার চেষ্টা করেন sudo আপনি নিম্নলিখিত বার্তাটি দেখতে পাবেন: testftp is not in the sudoers file.
অনেক ডেবিয়ান/উবুন্টু-ভিত্তিক ডিস্ট্রিবিউশনে 'দ্রুত' উপায় হলো ব্যবহারকারীকে গ্রুপে যুক্ত করা। উবুন্টু:
sudo adduser testftp sudo
অন্যান্য পরিবেশে, অথবা আরও সূক্ষ্ম নিয়ন্ত্রণের জন্য, আপনি ফাইলটি সম্পাদনা করতে পারেন। /etc/sudoers (অথবা একটি নির্দিষ্ট ফাইল যোগ করুন) /etc/sudoers.d/সর্বদা ব্যবহার করে:
sudo visudo
ভিতরে, আপনি রুট টেমপ্লেটটি কপি করে একটি লাইন যোগ করতে পারেন, কিন্তু সেটি শুধু ওই ব্যবহারকারীর জন্য:
testftp ALL=(ALL:ALL) ALL
এর সাথে, testftp রুট হিসেবে যেকোনো কমান্ড চালাতে পারবে। sudo ব্যবহার করে root-এর মতোই কাজ করা যায় (তবে এর মাধ্যমে তথ্য শনাক্ত করা যায়)। যদি আরও কঠোর বিধিনিষেধের প্রয়োজন হয়, তবে আপনি অনুমোদিত কমান্ড সীমিত করতে পারেন, TTY বাধ্যতামূলক করতে পারেন, পাসওয়ার্ড প্রবেশে বাধ্য করতে পারেন, ইত্যাদি।
অধিক সংবেদনশীল সার্ভারগুলিতে, sudo গ্রুপের কোনো ব্যবহারকারীকে 'পূর্ণ ক্ষমতা' না দিয়ে বরং তা সংজ্ঞায়িত করাই প্রচলিত রীতি। sudoers ঠিক কী করা যায় এবং কী করা যায় নাউদাহরণস্বরূপ, শুধুমাত্র একটি নির্দিষ্ট পরিষেবা বা নির্দিষ্ট প্রশাসনিক স্ক্রিপ্ট পরিচালনার অনুমতি দেওয়া।
একবার সম্পাদনা করে সংরক্ষণ করা হলে visudoপ্রভাবিত ব্যবহারকারী আর "not in the sudoers file" ত্রুটিটি দেখতে পাবেন না এবং নিয়ন্ত্রিত উপায়ে বিশেষাধিকার বৃদ্ধি করতে সক্ষম হবেন।
root এবং sudo ব্যবহারের সর্বোত্তম অনুশীলন
রুট প্রিভিলেজ নিয়ে কাজ করার অর্থ শুধু কোন কমান্ডগুলো ব্যবহার করতে হবে তা জানাই নয়, বরং আরও অনেক কিছু। বিচক্ষণ নিরাপত্তা অভ্যাস গ্রহণ করুনকিছু প্রাথমিক সুপারিশ যা আত্মস্থ করা প্রয়োজন:
প্রথমে চেষ্টা করুন শুধুমাত্র নির্দিষ্ট কমান্ডের জন্য sudo ব্যবহার করুন। যখনই সম্ভব। আপনি রুট শেলে যত কম সময় কাটাবেন, গুরুতর ভুল করার সম্ভাবনাও তত কম থাকবে। রুট সেশন খুলে লগ আউট করতে ভুলে যাওয়ার চেয়ে `sudo` দিয়ে কয়েকটি কমান্ড চালানো সাধারণত বেশি নিরাপদ।
আপনার যদি প্রয়োজন হয় sudo -i o sudo su -এটা তখনই করুন যখন আপনি নিশ্চিত থাকবেন যে আপনি একের পর এক বেশ কিছু প্রশাসনিক কাজ চালাবেন। আপনার কাজ শেষ হলেই রুট থেকে বেরিয়ে যান। বিরূদ্ধে exitব্যাকগ্রাউন্ডে রুট সেশন খোলা রাখলে, বিশেষ করে কোনো শেয়ার করা মেশিন বা অ্যাক্সেসযোগ্য ডেস্কটপে, ঝুঁকি অনেক বেড়ে যায়।
রুট সেশন থেকে কখনো ব্রাউজার, ইমেল ক্লায়েন্ট বা সন্দেহজনক নথি খুলবেন না। এই অ্যাপ্লিকেশনগুলোকে প্রভাবিত করে এমন যেকোনো এক্সপ্লয়েট বিপজ্জনক হতে পারে। এটি যে অ্যাকাউন্ট থেকে এগুলো কার্যকর করা হবে, তার অনুমতিগুলো উত্তরাধিকারসূত্রে লাভ করবে।যখনই আপনি কোনো অবিশ্বস্ত বিষয়বস্তুর সাথে যোগাযোগ করবেন, একজন সাধারণ ব্যবহারকারী হিসেবেই তা করুন।
আর একটি মূল বিষয় হ'ল sudo দিয়ে অজানা স্ক্রিপ্ট চালাবেন না। প্রথমে না পড়েই। যদি কেউ আপনাকে "এই `curl | sh with sudo` পেস্ট করতে বলে এবং আপনি না দেখেই তা করেন, তাহলে আপনি তাদের হাতে আপনার সিস্টেমের চাবি তুলে দিচ্ছেন। স্ক্রিপ্টটি একটি টেক্সট এডিটরে খুলুন, দেখুন এটি কী করে, কোথা থেকে এসেছে, এবং যদি আপনি এটি না বোঝেন বা বিশ্বাস না করেন, তবে এটি চালাবেন না।
যখনই সম্ভব, সফটওয়্যার এবং স্ক্রিপ্ট ডাউনলোড করুন এখান থেকে সরকারি বা অত্যন্ত নির্ভরযোগ্য সূত্রচেকসাম পাওয়া গেলে তা যাচাই করুন এবং সন্দেহ হলে, প্রথমে এমন একটি ভার্চুয়াল মেশিন বা কন্টেইনারে পরীক্ষা করে নিন যা কোনো সমস্যা হলে বাতিল করা যাবে।
অবশেষে, আর্কাইভের সুবিধা নিন। /etc/sudoers প্রয়োগ করতে সর্বনিম্ন বিশেষাধিকারের নীতিএটি প্রত্যেক ব্যবহারকারীকে কেবল তাদের প্রয়োজনীয় অনুমতিই দেয়, এর বেশি নয়, এবং sudo-এর মাধ্যমে করা সমস্ত কার্যকলাপ লগ করে রাখে, যাতে কোনো সমস্যা হলে আপনি পর্যালোচনা করে দেখতে পারেন কে কী করেছে।
রুট ইউজার কী, রুট প্রিভিলেজগুলো UID 0 অ্যাকাউন্টের প্রিভিলেজ থেকে কীভাবে আলাদা, এবং এর মতো টুল ব্যবহার করা বোঝা। sudo, su, admin গ্রুপ এবং SSH কনফিগারেশনযেকোনো লিনাক্স সিস্টেমকে অনেক বেশি নিরাপত্তা ও মানসিক শান্তির সাথে পরিচালনা করা সম্ভব, যার ফলে অপ্রয়োজনীয় আতঙ্ক এড়ানো যায় এবং কে কী করেছে ও কী অনুমতি নিয়ে করেছে, তা সর্বদা জানা যায়।
