10 লিনাক্সে sudo সেট করার জন্য দরকারী Sudoers কনফিগারেশন


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

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

বিকল্পভাবে, সিস্টেম অ্যাডমিনিস্ট্রেটর রুট ব্যবহারকারীর পাসওয়ার্ড ভাগ করতে পারেন (যা প্রস্তাবিত পদ্ধতি নয়) যাতে সাধারণ সিস্টেম ব্যবহারকারীরা su কমান্ডের মাধ্যমে রুট ব্যবহারকারী অ্যাকাউন্টে অ্যাক্সেস পায়।

সুরডো কোনও অনুমোদিত ব্যবহারকারীকে সুরক্ষা নীতি দ্বারা নির্দিষ্ট হিসাবে, রুট (বা অন্য ব্যবহারকারী) হিসাবে একটি কমান্ড কার্যকর করতে অনুমতি দেয়:

  1. এটি পড়তে এবং পার্স/ইত্যাদি/sudoers, আমন্ত্রণকারী ব্যবহারকারী এবং এর অনুমতিগুলি সন্ধান করে,
  2. তারপরে অনুরোধকারী ব্যবহারকারীকে একটি পাসওয়ার্ডের জন্য অনুরোধ জানায় (সাধারণত ব্যবহারকারীর পাসওয়ার্ড, তবে এটি লক্ষ্যবস্তু ব্যবহারকারীর পাসওয়ার্ডও হতে পারে Or বা এটি NOPASSWD ট্যাগ সহ এড়িয়ে যেতে পারে),
  3. এর পরে, সুডো একটি শিশু প্রক্রিয়া তৈরি করে যেখানে লক্ষ্য ব্যবহারকারীকে স্যুইচ করার জন্য সেটুইড() কে কল করে
  4. এর পরে, এটি শেল বা উপরের শিশু প্রক্রিয়াতে আর্গুমেন্ট হিসাবে প্রদত্ত কমান্ড কার্যকর করে

ডিফল্ট এন্ট্রি ব্যবহার করে sudo কমান্ডের আচরণটি পরিবর্তন করার জন্য নীচে দশ/ইত্যাদি/sudoers ফাইল কনফিগারেশন রয়েছে।

$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults	logfile="/var/log/sudo.log"
Defaults	lecture="always"
Defaults	badpass_message="Password is wrong, please try again"
Defaults	passwd_tries=5
Defaults	insults
Defaults	log_input,log_output
Defaults                parameter,   parameter_list     #affect all users on any host
[email _List      parameter,   parameter_list     #affects all users on a specific host
Defaults:User_List      parameter,   parameter_list     #affects a specific user
Defaults!Cmnd_List      parameter,   parameter_list     #affects  a specific command 
Defaults>Runas_List     parameter,   parameter_list     #affects commands being run as a specific user

এই গাইডের সুযোগগুলির জন্য, আমরা নীচের ফর্মগুলিতে প্রথম ধরণের ডিফল্টে শূন্য হয়ে যাব। প্যারামিটারগুলি পতাকা, পূর্ণসংখ্যা মান, স্ট্রিং বা তালিকা হতে পারে।

আপনার লক্ষ করা উচিত যে পতাকাগুলি স্পষ্টতই বুলেটিয়ান এবং ! অপারেটর ব্যবহার করে বন্ধ করা যেতে পারে এবং তালিকাগুলিতে দুটি অতিরিক্ত অ্যাসাইনমেন্ট অপারেটর রয়েছে + = (তালিকায় যুক্ত) এবং <কোড > - = (তালিকা থেকে সরান)।

Defaults     parameter
OR
Defaults     parameter=value
OR
Defaults     parameter -=value   
Defaults     parameter +=value  
OR
Defaults     !parameter       

1. একটি নিরাপদ পথ সেট করুন

এটি sudo দিয়ে পরিচালিত প্রতিটি কমান্ডের জন্য ব্যবহৃত পথ, এর দুটি আমদানি রয়েছে:

  1. ব্যবহৃত হয় যখন কোনও সিস্টেম প্রশাসক সুডো ব্যবহারকারীদের একটি নিরাপদ PATH এনভায়রনমেন্ট ভেরিয়েবল রাখতে বিশ্বাস করে না
  2. "মূল পাথ" এবং "ব্যবহারকারীর পাথ" পৃথক করতে কেবল ছাড়_গ্রুপ দ্বারা সংজ্ঞায়িত ব্যবহারকারীরা এই সেটিং দ্বারা প্রভাবিত হন না

এটি সেট করতে, লাইনটি যুক্ত করুন:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

2. টিটিওয়াই ব্যবহারকারী লগইন সেশনে sudo সক্ষম করুন

ক্রোড বা সিজি-বিন স্ক্রিপ্টের মতো পদ্ধতির মাধ্যমে নয় বরং আসল টিটি থেকে আহ্বান করতে সুডোকে সক্ষম করতে, লাইনটি যুক্ত করুন:

Defaults  requiretty   

3. একটি pty ব্যবহার করে সুডো কমান্ড চালান

কয়েকবার, আক্রমণকারীরা sudo ব্যবহার করে একটি বিদ্বেষপূর্ণ প্রোগ্রাম (যেমন একটি ভাইরাস বা ম্যালওয়্যার) চালাতে পারে, যা মূল প্রোগ্রামটি শেষ করার পরেও ব্যবহারকারীর টার্মিনাল ডিভাইসে থাকা একটি পটভূমি প্রক্রিয়াটিকে আবার কাঁটাতে পারে।

এই জাতীয় পরিস্থিতি এড়ানোর জন্য, আপনি use_pty প্যারামিটার ব্যবহার করে কেবলমাত্র একটি psuedo-pty থেকে অন্যান্য কমান্ড চালানোর জন্য sudo কনফিগার করতে পারেন, আই/ও লগিং চালু আছে বা নীচে হিসাবে নেই:

Defaults  use_pty

৪. একটি সুডো লগ ফাইল তৈরি করুন

ডিফল্টরূপে, sudo syslog (3) এর মাধ্যমে লগ করে। তবে একটি কাস্টম লগ ফাইল নির্দিষ্ট করতে লগফাইলে প্যারামিটারটি এর মতো ব্যবহার করুন:

Defaults  logfile="/var/log/sudo.log"

হোস্ট-নেম এবং কাস্টম লগ ফাইলে চার-অঙ্কের বছরের জন্য লগ করতে, নিম্নলিখিত অনুসারে যথাক্রমে লগ_হস্ট এবং লগ_ইয়ার প্যারামিটারগুলি ব্যবহার করুন:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

নীচে একটি কাস্টম সুডো লগ ফাইলের উদাহরণ রয়েছে:

৫. সুডো কমান্ড ইনপুট/আউটপুট লগ করুন

লগ_ইনপুট এবং লগ_আউটপুট প্যারামিটারগুলি সিডো-টিটি-তে একটি কমান্ড চালাতে sudo সক্ষম করে এবং ব্যবহারকারীর সমস্ত ইনপুট এবং সমস্ত আউটপুট গ্রহণযোগ্যভাবে স্ক্রিনে প্রেরণ করে।

ডিফল্ট I/O লগ ডিরেক্টরিটি হ'ল var/log/sudo-io, এবং যদি একটি সেশন ক্রম সংখ্যা থাকে তবে এটি এই ডিরেক্টরিতে সঞ্চিত থাকে। Iolog_dir প্যারামিটারের মাধ্যমে আপনি একটি কাস্টম ডিরেক্টরি নির্দিষ্ট করতে পারেন।

Defaults   log_input, log_output

এখানে কিছু পালানোর ক্রম সমর্থিত রয়েছে যেমন % {seq} যা মনোোটোনিকভাবে বর্ধিত বেস-36৩ ক্রম সংখ্যাটিতে প্রসারিত হয় যেমন 000001, যেখানে প্রতি দুটি ডিজিট একটি নতুন ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়, যেমন। 00/00/01 নীচের উদাহরণ হিসাবে:

$ cd /var/log/sudo-io/
$ ls
$ cd  00/00/01
$ ls
$ cat log

আপনি সেই ডিরেক্টরিতে থাকা বাকী ফাইলগুলি ক্যাট কমান্ড ব্যবহার করে দেখতে পারেন।

6. বক্তৃতা সুডো ব্যবহারকারীরা

সিস্টেমে পাসওয়ার্ড ব্যবহার সম্পর্কে সুডো ব্যবহারকারীদের বক্তৃতা দিতে নীচের মত লেকচার প্যারামিটার ব্যবহার করুন।

এটির 3 টি সম্ভাব্য মান রয়েছে:

  1. সর্বদা - সর্বদা একজন ব্যবহারকারীকে বক্তৃতা দিন
  2. একবার - কেবলমাত্র কোনও ব্যবহারকারীকে তারা প্রথমবার sudo কমান্ড কার্যকর করার সময় বক্তৃতা দিন (কোনও মান নির্দিষ্ট না করা হলে এটি ব্যবহৃত হয়)
  3. কখনও না - কখনও ব্যবহারকারীকে বক্তৃতা দেবেন না

 
Defaults  lecture="always"

অতিরিক্তভাবে, আপনি লেকচার_ফায়াল প্যারামিটার দিয়ে একটি কাস্টম লেকচার ফাইল সেট করতে পারেন, ফাইলটিতে উপযুক্ত বার্তাটি টাইপ করুন:

Defaults  lecture_file="/path/to/file"

7. আপনি ভুল sudo পাসওয়ার্ড লিখলে কাস্টম বার্তা প্রদর্শন করুন

যখন কোনও ব্যবহারকারী কোনও ভুল পাসওয়ার্ড প্রবেশ করে, একটি নির্দিষ্ট বার্তা কমান্ড লাইনে প্রদর্শিত হয়। ডিফল্ট বার্তাটি "দুঃখিত, আবার চেষ্টা করুন", আপনি ব্যাডপাস_মেসেজ প্যারামিটারটি নিম্নরূপ ব্যবহার করে বার্তাটি সংশোধন করতে পারেন:

Defaults  badpass_message="Password is wrong, please try again"

8. sudo পাসওয়ার্ড চেষ্টা সীমা বৃদ্ধি করুন

পাসওয়ার্ড পাসওয়ার্ড প্যারামিটার ব্যবহারকারীর পাসওয়ার্ড দেওয়ার জন্য কতবার চেষ্টা করতে পারে তা নির্দিষ্ট করতে ব্যবহৃত হয়।

ডিফল্ট মান 3:

Defaults   passwd_tries=5 

পাসউইড_টাইমআউটআউট প্যারামিটার ব্যবহার করে একটি পাসওয়ার্ড টাইমআউট (ডিফল্ট 5 মিনিট) সেট করতে নীচের লাইনটি যুক্ত করুন:

Defaults   passwd_timeout=2

9. আপনি ভুল পাসওয়ার্ড লিখলে সুডো আপনাকে অপমান করতে দিন

কোনও ব্যবহারকারী কোনও ভুল পাসওয়ার্ড টাইপ করলে sudo টার্মিনালে অপমানের পরামিতিটি সহ অপমান প্রদর্শন করবে। এটি স্বয়ংক্রিয়ভাবে ব্যাডপ্যাস_মেসেজ প্যারামিটারটি বন্ধ করে দেবে।

Defaults  insults 

আরও পড়ুন: আপনি ভুল পাসওয়ার্ড লিখলে সুডো আপনাকে অপমান করতে দিন

10. আরও সুডো কনফিগারেশন শিখুন

তদতিরিক্ত, আপনি আরও sudo কমান্ড কনফিগারেশন পড়তে শিখতে পারেন: su এবং sudo এর মধ্যে পার্থক্য এবং লিনাক্সে sudo কীভাবে কনফিগার করতে হয়।

এটাই! আপনি নীচে মন্তব্য বিভাগের মাধ্যমে লিনাক্স ব্যবহারকারীদের সাথে অন্যান্য দরকারী সুডো কমান্ড কনফিগারেশন বা কৌশল এবং টিপস ভাগ করে নিতে পারেন।