ലിനക്സിൽ സുഡോ സജ്ജീകരിക്കുന്നതിനുള്ള 10 ഉപയോഗപ്രദമായ Sudoers കോൺഫിഗറേഷനുകൾ


Linux-ലും മറ്റ് Unix-പോലുള്ള ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലും, റൂട്ട് ഉപയോക്താവിന് മാത്രമേ എല്ലാ കമാൻഡുകളും പ്രവർത്തിപ്പിക്കാനും സിസ്റ്റത്തിൽ ഇൻസ്റ്റോൾ ചെയ്യാനും അപ്uഡേറ്റ് ചെയ്യാനും പാക്കേജുകൾ നീക്കം ചെയ്യാനും ഉപയോക്താക്കളെയും ഗ്രൂപ്പുകളും സൃഷ്ടിക്കാനും പ്രധാനപ്പെട്ട സിസ്റ്റം കോൺഫിഗറേഷൻ ഫയലുകൾ പരിഷ്uക്കരിക്കാനും പോലുള്ള ചില നിർണായക പ്രവർത്തനങ്ങൾ നടത്താൻ കഴിയൂ.

എന്നിരുന്നാലും, റൂട്ട് ഉപയോക്താവിന്റെ പങ്ക് ഏറ്റെടുക്കുന്ന ഒരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർക്ക് sudo കമാൻഡിന്റെയും ചില കോൺഫിഗറേഷനുകളുടെയും സഹായത്തോടെ മറ്റ് സാധാരണ സിസ്റ്റം ഉപയോക്താക്കളെ ചില കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുന്നതിനും മുകളിൽ സൂചിപ്പിച്ചവ ഉൾപ്പെടെ നിരവധി സുപ്രധാന സിസ്റ്റം പ്രവർത്തനങ്ങൾ നടത്തുന്നതിനും അനുവദിക്കാൻ കഴിയും.

പകരമായി, സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർക്ക് റൂട്ട് യൂസർ പാസ്uവേഡ് പങ്കിടാൻ കഴിയും (ഇത് ശുപാർശ ചെയ്യുന്ന രീതിയല്ല) അതിനാൽ സാധാരണ സിസ്റ്റം ഉപയോക്താക്കൾക്ക് su കമാൻഡ് വഴി റൂട്ട് യൂസർ അക്കൗണ്ടിലേക്ക് ആക്uസസ് ലഭിക്കും.

സുരക്ഷാ നയം വ്യക്തമാക്കിയ പ്രകാരം ഒരു കമാൻഡ് റൂട്ട് (അല്ലെങ്കിൽ മറ്റൊരു ഉപയോക്താവ്) ആയി എക്സിക്യൂട്ട് ചെയ്യാൻ sudo അനുവദനീയമായ ഉപയോക്താവിനെ അനുവദിക്കുന്നു:

  1. ഇത് /etc/sudoers വായിക്കുകയും പാഴ്uസ് ചെയ്യുകയും, അഭ്യർത്ഥിക്കുന്ന ഉപയോക്താവിനെയും അതിന്റെ അനുമതികളെയും നോക്കുകയും ചെയ്യുന്നു,
  2. പിന്നെ ഒരു പാസ്uവേഡിനായി അഭ്യർത്ഥിക്കുന്ന ഉപയോക്താവിനോട് ആവശ്യപ്പെടുന്നു (സാധാരണയായി ഉപയോക്താവിന്റെ പാസ്uവേഡ്, പക്ഷേ ഇത് ടാർഗെറ്റ് ഉപയോക്താവിന്റെ പാസ്uവേഡും ആകാം. അല്ലെങ്കിൽ ഇത് NOPASSWD ടാഗ് ഉപയോഗിച്ച് ഒഴിവാക്കാം),
  3. അതിനുശേഷം, സുഡോ ഒരു ചൈൽഡ് പ്രോസസ്സ് സൃഷ്uടിക്കുന്നു, അതിൽ ടാർഗെറ്റ് ഉപയോക്താവിലേക്ക് മാറുന്നതിന് സെറ്റൂയിഡ്() എന്ന് വിളിക്കുന്നു
  4. അടുത്തത്, മുകളിലെ ചൈൽഡ് പ്രോസസിൽ ആർഗ്യുമെന്റായി നൽകിയിരിക്കുന്ന ഷെൽ അല്ലെങ്കിൽ കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നു.

ഡിഫോൾട്ട് എൻട്രികൾ ഉപയോഗിച്ച് സുഡോ കമാൻഡിന്റെ സ്വഭാവം പരിഷ്കരിക്കുന്നതിനുള്ള പത്ത് /etc/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. ഒരു സുരക്ഷിത പാത സജ്ജമാക്കുക

സുഡോ ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കുന്ന എല്ലാ കമാൻഡിനും ഉപയോഗിക്കുന്ന പാത ഇതാണ്, ഇതിന് രണ്ട് പ്രാധാന്യങ്ങളുണ്ട്:

  1. സുഡോ ഉപയോക്താക്കൾക്ക് സുരക്ഷിതമായ PATH പരിസ്ഥിതി വേരിയബിൾ ഉണ്ടെന്ന് ഒരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ വിശ്വസിക്കാത്തപ്പോൾ ഉപയോഗിക്കുന്നു
  2. \റൂട്ട് പാത്ത്, \ഉപയോക്തൃ പാത എന്നിവ വേർതിരിക്കുന്നതിന്, exempt_group നിർവ്വചിച്ച ഉപയോക്താക്കളെ മാത്രമേ ഈ ക്രമീകരണം ബാധിക്കില്ല.

ഇത് സജ്ജമാക്കാൻ, വരി ചേർക്കുക:

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

2. TTY യൂസർ ലോഗിൻ സെഷനിൽ സുഡോ പ്രവർത്തനക്ഷമമാക്കുക

ക്രോൺ അല്ലെങ്കിൽ സിജിഐ-ബിൻ സ്ക്രിപ്റ്റുകൾ പോലെയുള്ള രീതികളിലൂടെയല്ല, ഒരു യഥാർത്ഥ ടിറ്റിയിൽ നിന്ന് സുഡോയെ പ്രാപ്തമാക്കാൻ, ലൈൻ ചേർക്കുക:

Defaults  requiretty   

3. pty ഉപയോഗിച്ച് Sudo കമാൻഡ് പ്രവർത്തിപ്പിക്കുക

കുറച്ച് തവണ, ആക്രമണകാരികൾക്ക് സുഡോ ഉപയോഗിച്ച് ഒരു ക്ഷുദ്ര പ്രോഗ്രാം (വൈറസ് അല്ലെങ്കിൽ ക്ഷുദ്രവെയർ പോലുള്ളവ) പ്രവർത്തിപ്പിക്കാൻ കഴിയും, ഇത് പ്രധാന പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്യുന്നത് പൂർത്തിയാകുമ്പോഴും ഉപയോക്താവിന്റെ ടെർമിനൽ ഉപകരണത്തിൽ നിലനിൽക്കുന്ന ഒരു പശ്ചാത്തല പ്രക്രിയയെ വീണ്ടും ഫോർക്ക് ചെയ്യും.

അത്തരമൊരു സാഹചര്യം ഒഴിവാക്കാൻ, I/O ലോഗിംഗ് ഓണാക്കിയാലും ഇല്ലെങ്കിലും, use_pty പാരാമീറ്റർ ഉപയോഗിച്ച് ഒരു psuedo-pty-യിൽ നിന്ന് മാത്രം മറ്റ് കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് sudo ക്രമീകരിക്കാൻ കഴിയും:

Defaults  use_pty

4. ഒരു സുഡോ ലോഗ് ഫയൽ സൃഷ്ടിക്കുക

സ്ഥിരസ്ഥിതിയായി, syslog(3) വഴി സുഡോ ലോഗ് ചെയ്യുന്നു. എന്നിരുന്നാലും, ഒരു ഇഷ്uടാനുസൃത ലോഗ് ഫയൽ വ്യക്തമാക്കുന്നതിന്, ലോഗ്ഫയൽ പരാമീറ്റർ ഇതുപോലെ ഉപയോഗിക്കുക:

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

ഇഷ്uടാനുസൃത ലോഗ് ഫയലിൽ ഹോസ്റ്റ്നാമവും നാലക്ക വർഷവും ലോഗ് ചെയ്യാൻ, യഥാക്രമം log_host, log_year പാരാമീറ്ററുകൾ ഇനിപ്പറയുന്ന രീതിയിൽ ഉപയോഗിക്കുക:

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

ഒരു ഇഷ്uടാനുസൃത സുഡോ ലോഗ് ഫയലിന്റെ ഒരു ഉദാഹരണം ചുവടെയുണ്ട്:

5. സുഡോ കമാൻഡ് ഇൻപുട്ട്/ഔട്ട്പുട്ട് ലോഗ് ചെയ്യുക

log_input, log_output പാരാമീറ്ററുകൾ, pseudo-tty-യിൽ ഒരു കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നതിനും എല്ലാ ഉപയോക്തൃ ഇൻപുട്ടും സ്uക്രീനിലേക്ക് അയയ്uക്കുന്ന എല്ലാ ഔട്ട്uപുട്ടും ലോഗിൻ ചെയ്യുന്നതിനും സുഡോയെ പ്രാപ്uതമാക്കുന്നു.

സ്ഥിരസ്ഥിതി I/O ലോഗ് ഡയറക്uടറി /var/log/sudo-io ആണ്, കൂടാതെ ഒരു സെഷൻ സീക്വൻസ് നമ്പർ ഉണ്ടെങ്കിൽ, അത് ഈ ഡയറക്uടറിയിൽ സൂക്ഷിക്കുന്നു. iolog_dir പാരാമീറ്റർ വഴി നിങ്ങൾക്ക് ഒരു ഇഷ്uടാനുസൃത ഡയറക്ടറി വ്യക്തമാക്കാം.

Defaults   log_input, log_output

%{seq} പോലുള്ള ചില എസ്uകേപ്പ് സീക്വൻസുകൾ പിന്തുണയ്uക്കുന്നുണ്ട്, ഇത് 000001 പോലെയുള്ള ഏകതാനമായി വർദ്ധിക്കുന്ന ബേസ്-36 സീക്വൻസ് നമ്പറിലേക്ക് വികസിക്കുന്നു, ഇവിടെ ഓരോ രണ്ട് അക്കങ്ങളും ഒരു പുതിയ ഡയറക്uടറി രൂപീകരിക്കാൻ ഉപയോഗിക്കുന്നു, ഉദാ. ചുവടെയുള്ള ഉദാഹരണത്തിലെന്നപോലെ 00/00/01:

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

ക്യാറ്റ് കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ആ ഡയറക്ടറിയിലെ ബാക്കി ഫയലുകൾ കാണാൻ കഴിയും.

6. സുഡോ ഉപയോക്താക്കളെ പഠിപ്പിക്കുക

സിസ്റ്റത്തിലെ പാസ്uവേഡ് ഉപയോഗത്തെക്കുറിച്ച് സുഡോ ഉപയോക്താക്കൾക്ക് പ്രഭാഷണം നടത്താൻ, ചുവടെയുള്ള ലെക്ചർ പാരാമീറ്റർ ഉപയോഗിക്കുക.

ഇതിന് 3 സാധ്യമായ മൂല്യങ്ങളുണ്ട്:

  1. എല്ലായ്uപ്പോഴും - എപ്പോഴും ഒരു ഉപയോക്താവിനെ പഠിപ്പിക്കുക.
  2. ഒരിക്കൽ - ഒരു ഉപയോക്താവ് ആദ്യമായി sudo കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ മാത്രം പ്രഭാഷണം നടത്തുക (മൂല്യമൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ ഇത് ഉപയോഗിക്കുന്നു)
  3. ഒരിക്കലും - ഒരിക്കലും ഉപയോക്താവിനെ പ്രഭാഷണം നടത്തരുത്.

 
Defaults  lecture="always"

കൂടാതെ, നിങ്ങൾക്ക് lecture_file പാരാമീറ്റർ ഉപയോഗിച്ച് ഒരു ഇഷ്uടാനുസൃത ലെക്ചർ ഫയൽ സജ്ജമാക്കാൻ കഴിയും, ഫയലിൽ ഉചിതമായ സന്ദേശം ടൈപ്പ് ചെയ്യുക:

Defaults  lecture_file="/path/to/file"

7. നിങ്ങൾ തെറ്റായ sudo പാസ്uവേഡ് നൽകുമ്പോൾ ഇഷ്ടാനുസൃത സന്ദേശം കാണിക്കുക

ഒരു ഉപയോക്താവ് തെറ്റായ പാസ്uവേഡ് നൽകുമ്പോൾ, കമാൻഡ് ലൈനിൽ ഒരു നിശ്ചിത സന്ദേശം പ്രദർശിപ്പിക്കും. ഡിഫോൾട്ട് സന്ദേശം \ക്ഷമിക്കണം, വീണ്ടും ശ്രമിക്കുക ആണ്, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന രീതിയിൽ badpass_message പാരാമീറ്റർ ഉപയോഗിച്ച് സന്ദേശം പരിഷ്കരിക്കാനാകും:

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

8. സുഡോ പാസ്uവേഡ് ട്രീസ് ലിമിറ്റ് വർദ്ധിപ്പിക്കുക

ഒരു ഉപയോക്താവിന് എത്ര തവണ പാസ്uവേഡ് നൽകാൻ ശ്രമിക്കാമെന്ന് വ്യക്തമാക്കാൻ passwd_triries എന്ന പാരാമീറ്റർ ഉപയോഗിക്കുന്നു.

സ്ഥിര മൂല്യം 3 ആണ്:

Defaults   passwd_tries=5 

passwd_timeout പാരാമീറ്റർ ഉപയോഗിച്ച് ഒരു പാസ്uവേഡ് ടൈംഔട്ട് (ഡിഫോൾട്ട് 5 മിനിറ്റ്) സജ്ജീകരിക്കാൻ, ചുവടെയുള്ള ലൈൻ ചേർക്കുക:

Defaults   passwd_timeout=2

9. നിങ്ങൾ തെറ്റായ പാസ്uവേഡ് നൽകുമ്പോൾ നിങ്ങളെ അപമാനിക്കാൻ സുഡോയെ അനുവദിക്കുക

ഒരു ഉപയോക്താവ് തെറ്റായ പാസ്uവേഡ് ടൈപ്പ് ചെയ്താൽ, ഇൻസുൾട്ട് പാരാമീറ്റർ ഉപയോഗിച്ച് സുഡോ ടെർമിനലിൽ അവഹേളനങ്ങൾ പ്രദർശിപ്പിക്കും. ഇത് Badpass_message പാരാമീറ്റർ സ്വയമേവ ഓഫാക്കും.

Defaults  insults 

കൂടുതൽ വായിക്കുക: നിങ്ങൾ തെറ്റായ പാസ്uവേഡ് നൽകുമ്പോൾ നിങ്ങളെ അപമാനിക്കാൻ സുഡോയെ അനുവദിക്കുക

10. സുഡോ കോൺഫിഗറേഷനുകൾ കൂടുതലറിയുക

കൂടാതെ, നിങ്ങൾക്ക് കൂടുതൽ സുഡോ കമാൻഡ് കോൺഫിഗറേഷനുകൾ വായിച്ചുകൊണ്ട് പഠിക്കാം: su, sudo എന്നിവ തമ്മിലുള്ള വ്യത്യാസവും Linux-ൽ sudo എങ്ങനെ കോൺഫിഗർ ചെയ്യാം.

അത്രയേയുള്ളൂ! താഴെയുള്ള അഭിപ്രായ വിഭാഗത്തിലൂടെ നിങ്ങൾക്ക് മറ്റ് ഉപയോഗപ്രദമായ സുഡോ കമാൻഡ് കോൺഫിഗറേഷനുകളോ തന്ത്രങ്ങളും നുറുങ്ങുകളും ലിനക്സ് ഉപയോക്താക്കളുമായി പങ്കിടാം.