কম্পিউটার

সুডো কমান্ড এবং কনফিগারেশন ফাইলের একটি ভূমিকা

এই নির্দেশিকাটি ব্যাখ্যা করবে sudo কমান্ডটি কী, কীভাবে এটি লিনাক্সে ব্যবহার করতে হয় এবং কীভাবে এটির কনফিগারেশন ফাইল সম্পাদনা করতে হয়।

উবুন্টু লিনাক্স ব্যবহারকারীরা লিনাক্সে "সুডো" কমান্ড ব্যবহার করার সাথে পরিচিত হতে পারে। এটি লিনাক্সে একটি খুব দরকারী বৈশিষ্ট্য যা একটি লিনাক্স মেশিনের প্রশাসককে একটি নির্দিষ্ট ব্যবহারকারী বা ব্যবহারকারীদের গ্রুপকে "রুট" সুবিধা প্রদান করতে দেয়। এটি কনফিগার করা যেতে পারে যাতে এই বিশেষাধিকার এক বা একাধিক কমান্ডের মধ্যে সীমাবদ্ধ থাকে। উবুন্টু দল, উদাহরণস্বরূপ, রুট ব্যবহারকারীকে ডিফল্টরূপে লগ ইন করা থেকে ব্লক করার সিদ্ধান্ত নিয়েছে এবং পরিবর্তে ব্যবহারকারীদের প্রশাসনিক কাজগুলি সম্পাদন করতে sudo ব্যবহার করার অনুমতি দেয়। সুতরাং আপনি যদি উবুন্টু লিনাক্স ব্যবহার করেন, সুডো বিশেষাধিকারগুলি সেটআপ করা হয়েছে যাতে আপনার সম্পূর্ণ "রুট" সুবিধা থাকে। আসুন আপনার মেশিনে সুডো সুবিধাগুলি সেট আপ এবং কনফিগার করার বিষয়ে আরও ঘনিষ্ঠভাবে নজর দিন। এগিয়ে যাওয়ার আগে দয়া করে মনে রাখবেন যে আপনি একটি প্রোডাকশন সার্ভারে নিম্নলিখিত চেষ্টা করবেন না। অনুগ্রহ করে একটি পরীক্ষা মেশিনে এই টিউটোরিয়ালের উদাহরণগুলি ব্যবহার করে দেখুন এবং প্রোডাকশন সার্ভারে চেষ্টা করার আগে sudo এর সাথে পরিচিত হন। sudo একটি অত্যন্ত শক্তিশালী টুল এবং অত্যন্ত সতর্কতার সাথে ব্যবহার করা আবশ্যক।

আমার জানামতে "সুডো" প্যাকেজটি সমস্ত লিনাক্স বিতরণ সহ প্রেরণ করে। তাই আমি ইনস্টলেশনটি এড়িয়ে যাব এবং সরাসরি কনফিগারেশনে চলে যাব। এই টিউটোরিয়ালের জন্য আমি একটি Red Hat Linux মেশিন ব্যবহার করব। রুট হিসাবে আপনার লিনাক্স মেশিনে লগ ইন করুন এবং কমান্ড লাইনে নিম্নলিখিত কমান্ডটি চালান:

# ভিসুডো

উপরের কমান্ডটি "sudo" কনফিগারেশন খুলবে, যা /etc/sudoers-এ রয়েছে , আপনার মেশিনে ডিফল্ট সম্পাদক ব্যবহার করে, যা আমার উপর ভিম। নিচের বিভাগে স্ক্রোল করুন যেখানে আপনি নিম্নলিখিত পাঠ্যটি দেখতে পাচ্ছেন:

root    ALL=(ALL) ALL

এই sudo কনফিগারেশন সিনট্যাক্সের বিচ্ছেদ এই মত যায়। আপনি প্রথমে 'ব্যবহারকারী' সংজ্ঞায়িত করুন যার জন্য আপনি সুডো সেটআপ করতে চান। তারপর 'হোস্টনাম' আসে যেখানে কমান্ড চালানোর অনুমতি দেওয়া হয়। উপরের উদাহরণের মতো এটি একটি নির্দিষ্ট হোস্টনাম বা "সমস্ত" হতে পারে। এবং শেষটি হল 'কমান্ড' যার জন্য আপনি 'ব্যবহারকারী' প্রশাসনিক বিশেষাধিকার দিতে চান৷

কনফিগারেশনে ফিরে যান। Vim-এ উপরে দেখানো লাইনে নিচে স্ক্রোল করুন এবং o অক্ষরটি আঘাত করুন একটি নতুন লাইন যোগ করতে আপনার কীবোর্ডে। এখন ক্যালভিন প্রতিস্থাপন করে নিম্নলিখিত পাঠ্যটি যোগ করুন আপনার নিজের ব্যবহারকারীর নাম দিয়ে:

ক্যালভিন ALL=(সমস্ত) সকল

নিম্নলিখিত কী সমন্বয় ব্যবহার করে ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন:

ESC :wq

রিটার্ন টিপুন এই নির্দেশাবলী প্রয়োগ করতে (এন্টার) কী। আমরা এখন সুডো ব্যবহার করে ব্যবহারকারীকে 'ক্যালভিন' সমস্ত প্রশাসনিক সুবিধা দিয়েছি। একটি নতুন টার্মিনাল উইন্ডো খুলুন এবং ব্যবহারকারী হিসাবে লগ ইন করুন যাকে আপনি sudo বিশেষাধিকার দিয়েছেন। ব্যবহারকারী 'ক্যালভিন' হিসাবে অ্যাপাচি ওয়েব সার্ভার পুনরায় চালু করে নতুন অনুমতিগুলি সঠিকভাবে সেটআপ করা হয়েছে কিনা তা পরীক্ষা করা যাক:

sudo /etc/init.d/httpd পুনরায় চালু করুন
পাসওয়ার্ড:
httpd থামানো হচ্ছে:                                                                                                                                                                                                                 [  ঠিক আছে]
httpd শুরু হচ্ছে:                                 [  ঠিক আছে ]

সিস্টেম এখন আপনাকে একটি পাসওয়ার্ডের জন্য অনুরোধ করবে। আপনার ব্যবহারকারী নামের জন্য পাসওয়ার্ড লিখুন. আর ভয়েলা! Apache ওয়েব সার্ভার এখন পুনরায় চালু করা উচিত। আপনি অন্য কোন প্রশাসনিক কাজের জন্য এটি ব্যবহার করতে পারেন. একজন ব্যবহারকারীকে সম্পূর্ণ সুযোগ-সুবিধা দেওয়া সর্বদা সর্বোত্তম ধারণা নাও হতে পারে। তাই আপনি প্রশাসনিক সুবিধা সহ ব্যবহারকারীকে কয়েকটি কমান্ডে সীমাবদ্ধ করতে পারেন। ধরা যাক আপনি ব্যবহারকারী 'ক্যালভিন' কে শুধুমাত্র Apache ওয়েব সার্ভার পুনরায় চালু করার অনুমতি দিতে চান। visudo ব্যবহার করে sudo কনফিগারেশন ফাইল খুলুন এইরকম দেখতে আপনি আগে যে লাইনটি প্রবেশ করেছেন তা কমান্ড করুন এবং সম্পাদনা করুন:

calvin ALL=(ALL) /etc/init.d/httpd পুনরায় চালু করুন

ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন। ব্যবহারকারী 'ক্যালভিন' হিসাবে টার্মিনালে লগ ইন করুন। এখন sudo:

দিয়ে Apache পুনরায় চালু করার চেষ্টা করুন

# sudo /etc/init.d/httpd পুনরায় চালু করুন
পাসওয়ার্ড:
httpd বন্ধ করা হচ্ছে:[ ঠিক আছে ]
httpd শুরু হচ্ছে:[ ঠিক আছে ]

দারুণ। এটা কাজ করে। এখন ওয়েব সার্ভার বন্ধ করার চেষ্টা করুন:

# sudo /etc/init.d/httpd stop
পাসওয়ার্ড:
দুঃখিত, ব্যবহারকারী ক্যালভিনকে কমন্সে রুট হিসাবে ‘/etc/init.d/httpd stop’ চালানোর অনুমতি দেওয়া হয় না।

সুতরাং আপনি দেখতে পাচ্ছেন, ব্যবহারকারী 'ক্যালভিন' কেবল তা করতে পারে যা আমরা তাকে করতে দিই, এর বেশি কিছু না। আপনি sudoers-এ একাধিক কমান্ড যোগ করতে পারেন কমা দ্বারা পৃথক করা ফাইল। সুতরাং আপনি যদি 'ক্যালভিন'-কে অনুমতি দিতে চান তাহলে ওয়েব সার্ভারটি বন্ধ এবং পুনরায় চালু করার অনুমতি আপনার কনফিগারেশনটি এভাবে পড়বে:

ক্যালভিন ALL=(ALL) /etc/init.d/httpd রিস্টার্ট,/etc/init.d/httpd stop

এখন ওয়েব সার্ভার বন্ধ করার চেষ্টা করুন, এবং এটি কাজ করবে:

# sudo /etc/init.d/httpd stop
পাসওয়ার্ড:
httpd বন্ধ করা হচ্ছে:[ ঠিক আছে ]

সুডোর আরেকটি বৈশিষ্ট্য যা বেশ উপযোগী, বিশেষ করে যদি আপনাকে শেল স্ক্রিপ্ট ব্যবহার করে একটি প্রশাসনিক কাজ সম্পাদন করতে হয়, পাসওয়ার্ডের জন্য অনুরোধ না করেই sudo বিশেষাধিকার সেট করা। মনে রাখবেন যে শেয়ার করা ব্যবহারকারীর নাম ব্যবহার করে প্রোডাকশন মেশিনে এটি করা যুক্তিযুক্ত নাও হতে পারে, কারণ আপনার ব্যবহারকারীর নামের পাসওয়ার্ড ভুল হাতে পড়লে এটি সমস্যা তৈরি করতে পারে। তাই সাবধানতার সাথে এই বৈশিষ্ট্যটি ব্যবহার করুন৷

sudoers খুলুন ফাইল করুন এবং এইরকম দেখতে আপনি আগে প্রবেশ করা লাইনটি সম্পাদনা করুন:

ক্যালভিন ALL=(ALL) /etc/init.d/httpd পুনরায় চালু করুন NOPASSWD:সমস্ত

কনফিগারেশনের শেষ অংশটি sudo-কে নির্দেশ দেয় পাসওয়ার্ডের জন্য প্রম্পট না করার বা আশা না করার জন্য, এবং ব্যবহারকারীকে প্রশাসনিক সুযোগ-সুবিধা সহ এটিকে বরাদ্দ করা কমান্ড কার্যকর করার অনুমতি দেয়। ফাইলটি সংরক্ষণ করুন এবং আপনার পাঠ্য সম্পাদক থেকে প্রস্থান করুন এবং Apache পুনরায় চালু করার চেষ্টা করুন:

# sudo /etc/init.d/httpd পুনরায় চালু করুন
httpd বন্ধ করা হচ্ছে:[ ঠিক আছে ]
httpd শুরু হচ্ছে:[ ঠিক আছে ]

সুডো কনফিগারেশন ফাইলটিতে আরও অনেক কাস্টমাইজেশন করা যেতে পারে। আমরা শুধু এটির একটি ছোট অংশ দেখেছি। যাইহোক, এটি আপনাকে একটি শুরু দিতে হবে। আবার, সতর্কতার সাথে এটি ব্যবহার করুন।


  1. Su, Sudo Su, Sudo -s এবং Sudo -i এর মধ্যে পার্থক্য

  2. লিনাক্সে হোস্ট ফাইল কীভাবে ব্যবহার এবং সম্পাদনা করবেন

  3. ফাইন্ড কমান্ড ব্যবহার করে লিনাক্সে একটি ফাইল কীভাবে সন্ধান করবেন

  4. এইচটিএমএল এবং সিএসএসের জন্য শিক্ষানবিস গাইড