লিনাক্সে কীভাবে sudo ব্যবহার করবেন এবং sudoers ফাইলটি আয়ত্ত করবেন

  • sudo আপনাকে অন্য একজন ব্যবহারকারী (সাধারণত root) হিসেবে নিয়ন্ত্রিত ও অস্থায়ীভাবে কমান্ড চালানোর সুযোগ দেয়।
  • visudo ব্যবহার করে /etc/sudoers এবং /etc/sudoers.d ফাইলগুলিতে অনুমতির সেটিংস নির্ধারণ করা হয়।
  • sudo বা wheel-এর মতো গ্রুপ এবং sudoers-এর অন্তর্ভুক্ত অ্যালিয়াসগুলো নির্দিষ্ট ব্যবহারকারীদের নির্দিষ্ট সুবিধা প্রদান করা সহজ করে তোলে।
  • NOPASSWD-এর মতো অপশনগুলো আপনাকে বিভিন্ন পরিস্থিতিতে sudo ব্যবহারের সময় নিরাপত্তা ও সুবিধা সমন্বয় করার সুযোগ দেয়।

লিনাক্সে sudo ব্যবহার করে

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

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

sudo কী এবং লিনাক্সে এটি এত গুরুত্বপূর্ণ কেন?

কমান্ড sudo এটি মূল অংশগুলির মধ্যে একটি যেকোনো আধুনিক লিনাক্স সিস্টেমের। এর নামটি সাধারণত “সুপারইউজার ডু” বা “সাবস্টিটিউট ইউজার অ্যান্ড ডু” হিসেবে ব্যাখ্যা করা হয়, এবং এর কাজটি সহজ কিন্তু শক্তিশালী: এটি একজন অনুমোদিত ব্যবহারকারীকে সিস্টেমের অন্য কোনো ব্যবহারকারীর মতো করে কমান্ড চালানোর সুযোগ দেয়, সাধারণত rootসীমিত সময়ের জন্য

বাস্তবে, এর অর্থ হল যে একজন সাধারণ ব্যবহারকারী প্রশাসনিক কাজগুলো করতে পারে - যেমন প্যাকেজ ইনস্টল করা, সিস্টেম সেটিংস পরিবর্তন করা, পরিষেবা পরিচালনা করা, সংবেদনশীল ফাইলের অনুমতি পরিবর্তন করা - কোনো কিছু ছাড়াই সরাসরি লগ ইন করুন rootসাধারণ ব্যবহারকারী এবং সুপারইউজারের মধ্যে এই বিভাজন লিনাক্সের নিরাপত্তার অন্যতম স্তম্ভ।

বেশিরভাগ বর্তমান বিতরণ (ডেবিয়ান, উবুন্টু, এর বিভিন্ন সংস্করণ, এসএলই-ধরণের সিস্টেম, ইত্যাদি) নিয়ে আসে sudo এটি আগে থেকেই ইনস্টল করা থাকে, এবং এটিকে অযথা আনইনস্টল করা বা এতে হস্তক্ষেপ করা বাঞ্ছনীয় নয়। তাছাড়া, অনেক সিস্টেমে, ইনস্টলেশনের সময় তৈরি হওয়া ব্যবহারকারী স্বয়ংক্রিয়ভাবে সেই প্রশাসনিক গ্রুপে যুক্ত হয়ে যায়, যাদের এটি ব্যবহার করার অনুমতি থাকে। sudoডিফল্ট বিশেষাধিকারপ্রাপ্ত ব্যবহারকারী হয়ে ওঠে।

মনে রাখার মতো একটি অত্যন্ত গুরুত্বপূর্ণ বিষয়। যে হয় sudo এটি একজন ব্যবহারকারীকে "রূপান্তরিত" করে না root এটি সিস্টেমে সম্পূর্ণ অ্যাক্সেস দেয় না, বরং এর কনফিগারেশনে সংজ্ঞায়িত নিয়ম অনুসারে ব্যবহারকারীদের অন্য ব্যবহারকারী হিসেবে নির্দিষ্ট কমান্ড চালানোর অনুমতি দেয়। এইভাবে, সিস্টেমে সম্পূর্ণ অ্যাক্সেস না দিয়েই খুব নির্দিষ্ট অনুমতি প্রদান করা যেতে পারে।

sudo অভ্যন্তরীণভাবে কীভাবে কাজ করে

এর মৌলিক অপারেশন sudo ব্যবহারকারীর দৃষ্টিকোণ থেকে এটি খুবই সহজ: আপনি শব্দটি রাখবেন sudo বিশেষাধিকার সহ যে কমান্ডটি আমরা চালাতে চাই, তার আগে। উদাহরণস্বরূপ, প্যাকেজ তালিকা আপডেট করতে apt-get ডেবিয়ান বা উবুন্টুতে, একজন সাধারণ ব্যবহারকারীকে এইরকম কিছু করতে হবে:

sudo apt-get update

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

যখন আপনি একটি কমান্ড কার্যকর করেন sudoপ্রোগ্রামটি প্রথমে কনফিগারেশন ফাইলটি দেখে যাচাই করে নেয় যে, আপনার ব্যবহারকারী এটি ব্যবহার করার জন্য এবং কোন কোন নির্দিষ্ট কমান্ডের জন্য অনুমোদিত। /etc/sudoers এবং, অনেক সিস্টেমে, ডিরেক্টরিতে থাকা অতিরিক্ত ফাইলগুলো /etc/sudoers.d/যদি নিয়ম অনুমতি দেয়, sudo এটি পাসওয়ার্ড চায় (সাধারণত আপনারটা, তাদেরটা নয়)। rootএবং টার্গেট ব্যবহারকারী হিসেবে কমান্ডটি চালানোর জন্য আপনার বিশেষাধিকার সাময়িকভাবে বৃদ্ধি করে।

একটি কৌতূহলোদ্দীপক বিষয় যা প্রথমে প্রায়শই আপনাকে বিভ্রান্ত করে। টার্মিনালে যখন আপনাকে পাসওয়ার্ড দিতে বলা হয়, আপনি টাইপ করার সময় কোনো অক্ষর, এমনকি অ্যাস্টারিস্কও (তারকাচিহ্ন) দেখা যায় না। এটি সম্পূর্ণ স্বাভাবিক: এই ইনপুটটি ‘ব্লাইন্ড’ বা অদৃশ্য এবং এটি আপনার পাসওয়ার্ডের দৈর্ঘ্য যাতে কেউ দেখতে না পায়, সেই নিরাপত্তা ব্যবস্থারই একটি অংশ।

তাছাড়া, Sudo এক ধরনের 'ট্রাস্ট সেশন' বজায় রাখে।সফলভাবে পাসওয়ার্ড প্রবেশ করানোর পর, সেই একই টার্মিনালে উচ্চতর বিশেষাধিকার একটি নির্দিষ্ট সময়ের জন্য (অনেক ডিস্ট্রিবিউশনে ডিফল্টভাবে প্রায় ১৫ মিনিট) সক্রিয় থাকে। এই সময়কালে, আপনি আরও কমান্ড চালাতে পারবেন। sudo বারবার পাসওয়ার্ড না চেয়েই।

sudo-এর মৌলিক সিনট্যাক্স এবং সবচেয়ে দরকারি অপশনগুলো

সাধারণ বাক্য গঠন sudo এটা খুব সহজ:

sudo কমান্ড

এটি ব্যবহার করার সবচেয়ে সাধারণ উপায় হল সহজভাবে Como sudo comandoতবে, এতে বেশ কিছু আকর্ষণীয় বিকল্প রয়েছে। এর মধ্যে সবচেয়ে বেশি ব্যবহৃত (এবং অনেক প্রাতিষ্ঠানিক নির্দেশিকায় বিশেষভাবে উল্লেখিত) কয়েকটি হলো নিম্নরূপ:

  • -hপ্রোগ্রামের সিনট্যাক্স এবং সমস্ত উপলব্ধ অপশনসহ একটি সাহায্য বার্তা প্রদর্শন করে। sudo.
  • -Vএর বর্তমান সংস্করণ দেখাচ্ছে sudo এবং সংকলনের কিছু বিবরণ।
  • -vপ্রমাণীকরণের "গ্রেস টাইম" নবায়ন করে, অর্থাৎ কাউন্টারটি রিফ্রেশ করে, যাতে আপনার বিশেষাধিকারের মেয়াদ শেষ না হয়ে যায় এবং আপনাকে শীঘ্রই পুনরায় পাসওয়ার্ড দিতে না হয়।
  • -k: তাৎক্ষণিকভাবে সংরক্ষিত ক্রেডেনশিয়াল বাতিল করে দেয়; এটা অনেকটা বলার মতো sudo যেটি আপনার পূর্ব-প্রমাণীকরণের বিষয়টি 'ভুলে যায়', ফলে পরেরবার আপনাকে আবার পাসওয়ার্ড চাইতে বাধ্য করে।
  • -l: দেখায় আপনি কোন কমান্ডগুলো চালানোর জন্য অনুমোদিত sudo বর্তমান কনফিগারেশন অনুযায়ী sudoers.

অন্যান্য ব্যবহারকারীদের মতো কমান্ড চালানোর জন্যও খুব কার্যকরী বিকল্প রয়েছে। থেকে আলাদা root। উদাহরণস্বরূপ, সাথে -u আপনি একটি নির্দিষ্ট কমান্ডের জন্য একজন লক্ষ্য ব্যবহারকারী নির্ধারণ করতে পারেন:

sudo -u pedro whoami

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

sudo বনাম su এবং রুট ব্যবহারকারী

লিনাক্সে বেশ কয়েকটি পদ্ধতি সহাবস্থান করে। প্রশাসক অধিকার পেতে: সরাসরি হিসেবে নিবন্ধন করুন rootকমান্ডটি ব্যবহার করুন su এবং ব্যবহার sudoপ্রত্যেকটিরই সুবিধা ও অসুবিধা রয়েছে, এবং সেগুলো বুঝতে পারলে আপনার অনেক ঝামেলা কমে যাবে।

সরাসরি রুট হিসেবে লগ ইন করুন (উদাহরণস্বরূপ, এর সাথে ssh root@servidorএর মাধ্যমে আপনি শুরু থেকেই সিস্টেমে সম্পূর্ণ অ্যাক্সেস পান। এটি খুবই সুবিধাজনক, কিন্তু অত্যন্ত বিপজ্জনকও বটে: টাইপ করা যেকোনো ভুল কমান্ড সিস্টেমের অর্ধেক ডেটা মুছে ফেলতে পারে, গুরুত্বপূর্ণ পারমিশন পরিবর্তন করে দিতে পারে, অথবা মেশিনটিকে অকেজো করে দিতে পারে। তাই, বেশিরভাগ ক্ষেত্রে লগইন সেশন নিয়ে কাজ করার পরামর্শ দেওয়া হয় না। root স্থায়ীভাবে খোলা।

কমান্ড su (বিকল্প ব্যবহারকারী) এটি আপনাকে একই টার্মিনালের মধ্যে অন্য ব্যবহারকারীর কাছে সুইচ করার সুযোগ দেয়। মূল সেশনটি ব্যাকগ্রাউন্ডে থেকে যায় এবং নতুন সেশনটিকে "এনক্যাপসুলেট" করে। যদি আপনি চালান su pedroআপনার কাছে পাসওয়ার্ড চাওয়া হবে। pedro এবং, ভিতরে প্রবেশ করার পর, যদি আপনি টাইপ করেন exit আপনি পূর্ববর্তী ব্যবহারকারী অবস্থায় ফিরে যাবেন। যদি আপনি কোনো ব্যবহারকারীর নাম নির্দিষ্ট না করেন, su ডিফল্টরূপে, এটি স্যুইচ করার চেষ্টা করে root.

এর সাথে একটি গুরুত্বপূর্ণ সূক্ষ্মতা রয়েছে suযদি আপনি লগইন বিকল্পটি পাস না করেন (su -, su -l o su --loginব্যবহারকারী পরিবর্তন করে কিন্তু পরিবেশ পরিবর্তন করে না। এর মানে হলো আপনি পূর্ববর্তী ব্যবহারকারীর ওয়ার্কিং ডিরেক্টরি এবং ভেরিয়েবলগুলো নিয়েই থেকে যাবেন, যা পারমিশন সংক্রান্ত ত্রুটির কারণ হতে পারে (উদাহরণস্বরূপ, তালিকা করার চেষ্টা করার সময়)। বাড়ি (নতুন ব্যবহারকারীর পরিচয়পত্র সহ মূল ব্যবহারকারীর)।

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

sudo ব্যবহার করে “অন্য ব্যবহারকারী হিসেবে” ইন্টারেক্টিভ সেশন করার জন্যকিছু খুব বাস্তবসম্মত বৈচিত্র্য রয়েছে:

  • Sudo -sবর্তমান ব্যবহারকারীর পরিবেশ গ্রহণ করে লক্ষ্য ব্যবহারকারী হিসেবে একটি শেল খোলে।
  • সুডো-ইলক্ষ্য ব্যবহারকারীর জন্য একটি সম্পূর্ণ লগইন শেল চালু করে, যেখানে তার পরিবেশ এবং ডিরেক্টরি পরিষ্কার থাকে। $HOME, ফাইল লোড হচ্ছে যেমন .profile o .bash_profile.

এককালীন কাজের জন্য উভয় বিকল্পই উপযোগী। অন্য ব্যবহারকারী হিসাবে (সাধারণত) root আপনার পাসওয়ার্ড মনে রাখা ও ব্যবহার করার ঝামেলা ছাড়াই (অথবা যেকোনো পরিষেবা অ্যাকাউন্টের ক্ষেত্রে), সম্পাদিত কার্যকলাপের নিয়ন্ত্রণ ও রেকর্ড বজায় রেখে।

/etc/sudoers ফাইল এবং /etc/sudoers.d ডিরেক্টরি

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

এটা বোঝা গুরুত্বপূর্ণ /etc/sudoers আপনার "কোনো সম্পাদনা ছাড়াই" সম্পাদনা করা উচিত নয়। যেকোনো টেক্সট এডিটর দিয়ে। এটি সবসময় কমান্ড ব্যবহার করে পরিবর্তন করতে হবে। visudoযা ফাইলটিকে একটি এডিটর দিয়ে খোলে (ডিফল্টরূপে) vi o nano(কনফিগারেশনের উপর নির্ভর করে), তবে এটি সুরক্ষার একটি অতিরিক্ত স্তর যোগ করে: এটি সংরক্ষণ করার আগে সিনট্যাক্স পরীক্ষা করে এবং একই সময়ে দুইজনকে এটি সম্পাদনা করা থেকে বিরত রাখে।

sudoers সম্পাদনা করার সাধারণ ব্যবহার স্প্যানিশ ভাষায়:

sudo visudo -f /etc/sudoers

আপনি নির্দিষ্ট ফাইলগুলিও তৈরি করতে পারেন /etc/sudoers.d/ ব্যবহারকারী গোষ্ঠী, পরিষেবা ইত্যাদির ভিত্তিতে কনফিগারেশন আলাদা করতে। উদাহরণস্বরূপ, আপনার একটি ফাইল থাকতে পারে। /etc/sudoers.d/networking নেটওয়ার্ক পরিচালনার জন্য নির্দিষ্ট নিয়মাবলী সহ, যা সাধারণ কনফিগারেশনের বাকি অংশের সাথে মিশ্রিত হবে না।

একটি সাধারণ সিস্টেমে /etc/sudoers খোলার সময়আপনি এই ধরনের লাইন দেখতে পাবেন (মন্তব্য বাদে):

  • রুট ALL=(ALL:ALL) ALLব্যবহারকারী root আপনি যেকোনো হোস্টে, যেকোনো ব্যবহারকারী এবং যেকোনো গ্রুপ হিসেবে যেকোনো কমান্ড চালাতে পারেন।
  • % অ্যাডমিন সকল=(সমস্ত) সবদলের যে কেউ admin ব্যবহারের জন্য সম্পূর্ণ অনুমতি আছে sudo.
  • %sudo ALL=(ALL:ALL) ALLদলটির ক্ষেত্রেও একই কথা প্রযোজ্য। sudo, যা উবুন্টু এবং এর ডেরিভেটিভগুলোতে সাধারণত কী-গ্রুপ হয়ে থাকে।
  • # অন্তর্ভুক্ত /etc/sudoers.d: নির্দেশ করে যে ঐ ডিরেক্টরির ফাইলগুলোও পড়া উচিত (এমনকি যদি একটি #(এই নির্দিষ্ট প্রসঙ্গে এটি কোনো মন্তব্য নয়)।

ব্যবহারকারী এবং গ্রুপ নিয়ম ছাড়াও, sudoers এটি জটিল কনফিগারেশন সহজ করার জন্য উপনাম নির্ধারণের সুযোগ দেয়: ব্যবহারকারীর উপনাম (User_Alias), আদেশসমূহ (Cmnd_Alias) মৃত্যুদণ্ড কার্যকরকারী দলসমূহ (Runas_Alias) অথবা আশ্রয়দাতাদের (Host_Alias).

sudoers ব্যবহার করে ব্যবহারকারী ও গ্রুপ পরিচালনা করুন

সার্ভারগুলিতে একটি সাধারণ অভ্যাস প্রবেশাধিকার নিয়ন্ত্রণ করছে sudo গ্রুপের মাধ্যমে। উদাহরণস্বরূপ, অনেক সিস্টেমে একজন ব্যবহারকারীকে গ্রুপে যুক্ত করাই যথেষ্ট। sudo o wheel যাতে আপনি পূর্ণাঙ্গ প্রশাসনিক অনুমতি পেতে পারেন।

কোন ব্যবহারকারীরা একটি গ্রুপের অন্তর্ভুক্ত তা পরীক্ষা করতে নির্ধারিত (উদাহরণস্বরূপ, sudo), আপনি ব্যবহার করতে পারেন:

`grep 'sudo' /etc/group`

যদি আপনি কোনো ব্যবহারকারীকে sudo অনুমতি দিতে চানপ্রচলিত রীতি হলো এটিকে সংশ্লিষ্ট গ্রুপে যুক্ত করা। উদাহরণস্বরূপ, অন্তর্ভুক্ত করতে bill গ্রুপে sudo:

sudo adduser bill sudo

যখন আপনার সেই বিশেষাধিকারগুলি প্রত্যাহার করার প্রয়োজন হয়গ্রুপ থেকে এটিকে সরিয়ে দিন:

sudo deluser bill sudo

আরেকটি, আরও সূক্ষ্ম সম্ভাবনা এর মাধ্যমে অবাধ স্বাধীনতা না দিয়ে শুধু নির্দিষ্ট কিছু কমান্ডের জন্য অনুমতি দেওয়া হয়। এটি করার জন্য সাধারণত নির্দিষ্ট ফাইল তৈরি করা হয়। /etc/sudoers.d/উদাহরণস্বরূপ, আপনি একটি ফাইল সংজ্ঞায়িত করতে পারেন /etc/sudoers.d/networking এরকম কিছু সহ:

Cmnd_Alias ​​​​CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias ​​SERVERS = /usr/sbin/apache2ctl, /usr/bin/htpasswd
Cmnd_Alias ​​NETALL = CAPTURE, SERVERS
%netadmin ALL = NETALL

এই কনফিগারেশনের মাধ্যমে, গ্রুপের যেকোনো ব্যবহারকারী netadmin আপনি অ্যালিয়াসের অধীনে সংজ্ঞায়িত কমান্ডগুলি কার্যকর করতে সক্ষম হবেন। NETALL (যা ছদ্মনামগুলিকে একত্রিত করে) CAPTURE y SERVERSসবকিছুর পূর্ণ প্রবেশাধিকার না থাকা সত্ত্বেও sudoশুধু যোগ করার প্রয়োজন bill গ্রুপে netadmin যাতে তুমি ব্যবহার করতে পারো tcpdump এবং সংজ্ঞায়িত সার্ভার টুলগুলো।

সাধারণ কমান্ড যেগুলোর জন্য sudo প্রয়োজন

সিস্টেমের দৈনন্দিন প্রশাসনেএমন বেশ কয়েক ধরনের কাজ আছে যা প্রায় সবসময়ই একে অপরের সাথে জড়িত থাকে sudoকারণ এগুলোর সাথে সিস্টেম পরিবর্তন করা বা বিশেষাধিকারপ্রাপ্ত তথ্যে প্রবেশ করা জড়িত।

প্যাকেজ ব্যবস্থাপনাবন্টনের ভিত্তিতে zypper, apt অথবা অন্যান্য প্যাকেজ ম্যানেজারের ক্ষেত্রে, সফটওয়্যার ইনস্টল, অপসারণ বা আপডেট করার যেকোনো অপারেশনের জন্য বিশেষাধিকার প্রয়োজন। উদাহরণস্বরূপ:

sudo zypper install package
sudo apt-get install docker-ce

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

সিস্টেমডি দিয়ে পরিষেবা ব্যবস্থাপনা এটি সাধারণত এর মাধ্যমে করা হয় systemctlসার্ভিস শুরু করা, বন্ধ করা বা পুনরায় চালু করার মতো কাজগুলির জন্য সাধারণত প্রয়োজন হয় sudo:

sudo systemctl restart apache2

এর বিপরীতে, কোনো সার্ভিসের স্ট্যাটাস চেক করার মতো আরও নিরীহ কমান্ডগুলো তারা অনেক সিস্টেমে বিশেষাধিকার ছাড়াই কাজ করতে পারে:

systemctl status NetworkManager

ব্যবহারকারী অ্যাকাউন্ট পরিচালনা করার ক্ষেত্রেও যত্ন প্রয়োজন।. কমান্ড যেমন usermod, useradd o deluser তাদের প্রায় সবসময় সাথে যাওয়া উচিত sudoকারণ তারা সিস্টেমের ব্যবহারকারী ডেটাবেস পরিবর্তন করে:

sudo usermod -L -f 30 tux

অবশেষে, ফাইল অনুমতি এবং মালিকানা ব্যবস্থাপনা বিরূদ্ধে chown এবং যখন কোনো কোম্পানি সিস্টেম পাথ বা অন্য ব্যবহারকারীদের প্রভাবিত করে, তখন সাধারণত তাদের বিশেষাধিকারের প্রয়োজন হয়। উদাহরণস্বরূপ, সমস্ত ফাইল এবং সাবডিরেক্টরি তৈরি করতে... /home/test/tux-files ব্যবহারকারীর সম্পত্তি হয়ে যায় tux তুমি ব্যবহার করতে পারো:

sudo chown -R tux:tux /home/test/tux-files

sudo ব্যবহারের বাস্তব উদাহরণ

চলুন কিছু বাস্তব ঘটনা দেখা যাক। যেখানে sudo এর ফলেই অনুমতি সংক্রান্ত ত্রুটি এবং একটি সঠিক প্রশাসনিক কার্যক্রমের মধ্যে পার্থক্য গড়ে ওঠে।

ডেবিয়ান/উবুন্টুতে প্যাকেজ সূচী আপডেট করা অনুমতি ছাড়া এটি ত্রুটি দেখাবে, কারণ এটি ফাইলগুলো পরিচালনা করতে পারে না। /var/lib/apt/listsআদেশ:

apt-get আপডেট

এর শেষে "অনুমতি নেই" বার্তা আসবে।যেইমাত্র তুমি ওভাবে পুনরাবৃত্তি করো, পরিস্থিতি বদলে যায়:

sudo apt-get update

সিস্টেমটি আপনার পাসওয়ার্ড চাইবে।এবং যদি আপনার ব্যবহারকারী অনুমোদিত হয় sudoersআপডেটটি কোনো সমস্যা ছাড়াই চলবে। এটি একটি পুনরাবৃত্তিমূলক ঘটনা: অনুমতি সংক্রান্ত ত্রুটি, কিন্তু sudoসঠিক সম্পাদনা সহ sudo.

এর আরেকটি খুব সাধারণ উদাহরণ হলো সিস্টেম পাথে ফাইল কপি করা।, হিসাবে হিসাবে /usr/local/binআপনি যদি সেখানে একটি স্ক্রিপ্ট কপি করার চেষ্টা করেন একটি সাধারণ উপায়ে:

cp script.sh /usr/local/bin/

টার্মিনালের অভিযোগ করাটা স্বাভাবিক। আপনার সেই ডিরেক্টরিতে লেখার অনুমতি নেই। যদি আপনি যোগ করে অপারেশনটি পুনরাবৃত্তি করেন sudo:

sudo cp script.sh /usr/local/bin/

আপনার কাছে আপনার পাসওয়ার্ড চাওয়া হবে এবং সফলভাবে প্রমাণীকরণের পর,অনুলিপিটি তৈরি করা হবে এবং উচ্চতর বিশেষাধিকার সহকারে সম্পাদিত হিসাবে নথিভুক্ত করা হবে।

আপনি sudo-এর সাথে অপশনটিও একত্রিত করতে পারেন। -u সেশন পরিবর্তন না করে বা ব্যবহার না করে অন্য ব্যবহারকারী হিসাবে নির্দিষ্ট কমান্ড কার্যকর করতে su। উদাহরণস্বরূপ:

আমি
sudo -u pedro whoami

প্রথম অর্ডারে আপনার আসল ইউজারনেমটি দেখানো হবে।, অপরদিকে দ্বিতীয়টি “পেড্রো” ফেরত দেবে, যা প্রমাণ করে যে কার্য সম্পাদনটি সেই নির্দিষ্ট ব্যবহারকারী হিসেবেই সম্পন্ন করা হয়েছে।

পাসওয়ার্ড ছাড়া অনুমতি প্রদান এবং অন্যান্য উন্নত বিকল্প

ঘাম ঝরানোর সবচেয়ে শক্তিশালী দিকগুলোর মধ্যে একটি হলো এই ফিচারটি আপনাকে পাসওয়ার্ড চাওয়ার মাত্রা এবং কোন নির্দিষ্ট কমান্ডের জন্য তা নিয়ন্ত্রণ করার সুযোগ দেয়। কখনও কখনও, আপনি হয়তো চাইতে পারেন যে নির্দিষ্ট ব্যবহারকারীরা প্রতিবার পাসওয়ার্ড না দিয়েই বিশেষ কমান্ড চালাতে পারুক; যেমন, ডেস্কটপ পরিবেশে স্বয়ংক্রিয় স্ক্রিপ্ট বা শাটডাউন বাটনের জন্য।

লেবেলের মাধ্যমে এটি অর্জন করা হয় NOPASSWD নিয়মাবলীতে sudoersউদাহরণস্বরূপ, যদি আপনি চান miusuario কার্যকর করতে পারে /bin/cat বিরূদ্ধে sudo পাসওয়ার্ডের প্রয়োজন ছাড়াই আপনি একটি লাইন যোগ করতে পারেন:

myuser ALL = NOPASSWD: /bin/cat

একইভাবে, আপনি এটিকে সরঞ্জাম বন্ধ করার বিষয়টি পরিচালনা করার অনুমতি দিতে পারেন। বারবার প্রমাণীকরণ ছাড়াই, এরকম কিছু যোগ করে:

myuser ALL = NOPASSWD: /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart

আরও পরিচ্ছন্ন এবং আরও পরিমাপযোগ্য কনফিগারেশনের জন্যঅ্যালিয়াস ব্যবহার করা বাঞ্ছনীয়। এর একটি সাধারণ উদাহরণ হলো একটি ইউজার গ্রুপ, একটি কমান্ড গ্রুপ এবং, প্রয়োজনে, একটি এক্সিকিউশন ইউজার অ্যালিয়াস নির্ধারণ করা:

User_Alias ​​GROUP = pepe, perico, andres
Cmnd_Alias ​​​​POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
Runas_Alias ​​WEB = www-data, apache

এই সংজ্ঞাগুলো দিয়ে আপনি তখন লিখতে পারবেন আরও সহজে পঠনযোগ্য নিয়মাবলী, যেমন:

সকল দল = শক্তি

সুতরাং, ছদ্মনামে অন্তর্ভুক্ত যেকোনো ব্যবহারকারী GRUPO আপনি কম্পিউটারটি বন্ধ বা পুনরায় চালু করতে পারবেন sudoএবং আপনি পাসওয়ার্ড বাধ্যতামূলক করতে চান কি না, তা ব্যবহার করে সামঞ্জস্য করতে পারেন। NOPASSWD o PASSWDএছাড়াও আপনি নির্দিষ্ট হোস্টে ব্যবহার সীমাবদ্ধ করতে পারেন Host_Alias যাতে এটি শুধুমাত্র একটি নির্দিষ্ট নেটওয়ার্ক থেকে বৈধ হয়।

পরলোক NOPASSWDঅন্যান্য লেবেল আছে Como NOEXEC (কোনো কমান্ডকে উচ্চতর অনুমতিসহ অন্য প্রোগ্রাম চালু করা থেকে বিরত রাখতে) অথবা যোগ করার মতো ছোটখাটো কৌতূহল। insults লাইনে Defaults, তাই sudo যতবার তুমি পাসওয়ার্ড দিতে ব্যর্থ হবে, আমি ইংরেজিতে একটা কৌতুক বলব।

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

এর মতো একটি টুল থাকা sudoসঠিকভাবে বোঝা এবং সঠিকভাবে কনফিগার করাযেকোনো আধুনিক লিনাক্স সিস্টেমে, যেখানে একাধিক ব্যবহারকারী কাজ করেন বা আপনি ঝুঁকি কমাতে চান, সেখানে এটি প্রায় বাধ্যতামূলক, এমনকি আপনি একমাত্র ব্যবহারকারী হলেও। এই সমন্বয়ের সুবিধা গ্রহণ করে sudo, /etc/sudoers, গ্রুপ যেমন sudo o wheel এবং উন্নত ট্যাগ যেমন NOPASSWDএকটানা সেশনে আটকে না থেকেও আপনি আরাম, সূক্ষ্ম নিয়ন্ত্রণ এবং নিরাপত্তার মধ্যে একটি বেশ ভালো ভারসাম্য অর্জন করতে পারেন। root কিংবা শুধু ভাগ্যের উপর নির্ভর করা নয়।

লিনাক্সে রুট ব্যবহারকারী
সম্পর্কিত নিবন্ধ:
লিনাক্সে রুট ব্যবহারকারী: অনুমতি, ঝুঁকি এবং সর্বোত্তম অনুশীলন