Usanidi 10 Muhimu wa Sudoers kwa Kuweka sudo kwenye Linux


Katika Linux na mifumo mingine ya uendeshaji inayofanana na Unix, mtumiaji wa mizizi pekee ndiye anayeweza kuendesha amri zote na kufanya shughuli fulani muhimu kwenye mfumo kama vile kusakinisha na kusasisha, kuondoa vifurushi, kuunda watumiaji na vikundi, kurekebisha faili muhimu za usanidi wa mfumo na kadhalika.

Hata hivyo, msimamizi wa mfumo ambaye huchukua jukumu la mtumiaji wa mizizi anaweza kuruhusu watumiaji wengine wa mfumo wa kawaida kwa usaidizi wa amri ya sudo na usanidi machache wa kutekeleza baadhi ya amri na pia kutekeleza idadi ya shughuli muhimu za mfumo ikiwa ni pamoja na zile zilizotajwa hapo juu.

Vinginevyo, msimamizi wa mfumo anaweza kushiriki nenosiri la mtumiaji wa mizizi (ambayo si njia inayopendekezwa) ili watumiaji wa kawaida wa mfumo wapate ufikiaji wa akaunti ya mtumiaji wa mizizi kupitia amri ya su.

sudo inaruhusu mtumiaji anayeruhusiwa kutekeleza amri kama mzizi (au mtumiaji mwingine), kama ilivyoainishwa na sera ya usalama:

  1. Inasoma na kuchanganua /etc/sudoers, hutafuta mtumiaji anayetuma na ruhusa zake,
  2. kisha humwuliza mtumiaji anayetuma neno la siri (kwa kawaida nenosiri la mtumiaji, lakini pia linaweza kuwa nenosiri la mtumiaji lengwa. Au linaweza kurukwa kwa lebo ya NOPASSWD),
  3. baada ya hapo, sudo huunda mchakato wa mtoto ambapo huita setuid() kubadili hadi kwa mtumiaji lengwa
  4. kifuatacho, hutekeleza ganda au amri iliyotolewa kama hoja katika mchakato wa mtoto hapo juu.

Hapo chini kuna usanidi wa faili kumi /etc/sudoers kurekebisha tabia ya amri ya sudo kwa kutumia maingizo ya Defaults.

$ 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

Kwa upeo wa mwongozo huu, tutapunguza chini hadi aina ya kwanza ya Chaguo-msingi katika fomu zilizo hapa chini. Vigezo vinaweza kuwa bendera, nambari kamili, mifuatano, au orodha.

Unapaswa kukumbuka kuwa bendera ni za boolean kabisa na zinaweza kuzimwa kwa kutumia ! opereta, na orodha zina waendeshaji wawili wa ziada wa kazi, += (ongeza kwenye orodha) na -= (ondoa kwenye orodha).

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

1. Weka NJIA Salama

Hii ndio njia inayotumika kwa kila amri inayoendeshwa na sudo, ina umuhimu mbili:

  1. Inatumika wakati msimamizi wa mfumo haamini watumiaji wa sudo kuwa na tofauti salama ya mazingira ya PATH
  2. Ili kutenganisha \njia ya msingi na \njia ya mtumiaji, ni watumiaji waliofafanuliwa na kikundi cha exempt pekee ambao hawaathiriwi na mpangilio huu.

Ili kuiweka, ongeza mstari:

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

2. Washa sudo kwenye Kipindi cha Kuingia kwa Mtumiaji cha TTY

Ili kuwezesha sudo kuvutiwa kutoka kwa tty halisi lakini sio kupitia njia kama vile maandishi ya cron au cgi-bin, ongeza mstari:

Defaults  requiretty   

3. Endesha Amri ya Sudo Kwa kutumia pty

Mara chache, washambulizi wanaweza kuendesha programu hasidi (kama vile virusi au programu hasidi) kwa kutumia sudo, ambayo inaweza kubadilisha mchakato wa usuli ambao utasalia kwenye kifaa cha kulipia cha mtumiaji hata programu kuu inapomaliza kutekeleza.

Ili kuepuka hali kama hii, unaweza kusanidi sudo ili kutekeleza amri zingine pekee kutoka kwa psuedo-pty kwa kutumia use_pty parameta, iwe ukataji wa miti wa I/O umewashwa au la kama ifuatavyo:

Defaults  use_pty

4. Unda Faili ya Ingia ya Sudo

Kwa msingi, sudo huingia kupitia syslog(3). Walakini, kutaja faili ya logi maalum, tumia parameta ya faili kama hivyo:

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

Ili kuweka jina la mwenyeji na mwaka wa tarakimu nne katika faili maalum ya kumbukumbu, tumia log_host na log_year vigezo mtawalia kama ifuatavyo:

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

Chini ni mfano wa faili ya logi ya sudo maalum:

5. Ingia Sudo Amri Pembejeo/Pato

Vigezo vya log_input na log_output huwezesha sudo kutekeleza amri katika pseudo-tty na kuweka ingizo zote za mtumiaji na matokeo yote yanayotumwa kwenye skrini kwa upokezi.

Saraka chaguo-msingi ya logi ya I/O ni /var/log/sudo-io, na ikiwa kuna nambari ya mlolongo wa kikao, imehifadhiwa kwenye saraka hii. Unaweza kutaja saraka maalum kupitia parameta ya iolog_dir.

Defaults   log_input, log_output

Kuna baadhi ya mifuatano ya kutoroka inayotumika kama vile %{seq} ambayo hupanuka hadi nambari ya mfuatano ya msingi-36 inayoongezeka kwa monotonically, kama vile 000001, ambapo kila tarakimu mbili hutumiwa kuunda saraka mpya, k.m. 00/00/01 kama katika mfano hapa chini:

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

Unaweza kutazama faili zingine kwenye saraka hiyo kwa kutumia amri ya paka.

6. Hotuba Watumiaji wa Sudo

Ili kutoa hotuba kwa watumiaji wa sudo kuhusu utumiaji wa nenosiri kwenye mfumo, tumia kigezo cha mihadhara kama ilivyo hapo chini.

Ina maadili 3 iwezekanavyo:

  1. kila mara - mhadhara mtumiaji kila mara.
  2. mara moja - hutubia mtumiaji mara ya kwanza anapotekeleza amri ya sudo (hii inatumika wakati hakuna thamani iliyotajwa)
  3. kamwe - usiwahi kumhadhiri mtumiaji.

 
Defaults  lecture="always"

Kwa kuongeza, unaweza kuweka faili ya mihadhara maalum na parameta ya lecture_file, chapa ujumbe unaofaa kwenye faili:

Defaults  lecture_file="/path/to/file"

7. Onyesha Ujumbe Maalum Unapoingiza Nenosiri la sudo si sahihi

Wakati mtumiaji anaingia nenosiri lisilo sahihi, ujumbe fulani unaonyeshwa kwenye mstari wa amri. Ujumbe chaguo-msingi ni \samahani, jaribu tena, unaweza kurekebisha ujumbe kwa kutumia kigezo cha badpass_message kama ifuatavyo:

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

8. Ongeza Kikomo cha Majaribio ya Nenosiri la sudo

Kigezo passwd_tries kinatumika kubainisha idadi ya mara ambazo mtumiaji anaweza kujaribu kuingiza nenosiri.

Thamani chaguo-msingi ni 3:

Defaults   passwd_tries=5 

Ili kuweka muda wa kuisha kwa nenosiri (chaguo-msingi ni dakika 5) kwa kutumia kigezo cha passwd_timeout, ongeza mstari ulio hapa chini:

Defaults   passwd_timeout=2

9. Ruhusu Sudo Akutusi Unapoingiza Nenosiri Lisilo sahihi

Iwapo mtumiaji ataandika nenosiri lisilo sahihi, sudo itaonyesha matusi kwenye terminal na parameta ya matusi. Hii itazima kiotomatiki kigezo cha badpass_message.

Defaults  insults 

Soma Zaidi: Acha Sudo Akutusi Unapoingiza Nenosiri Lisilosahihi

10. Jifunze Zaidi Usanidi wa Sudo

Kwa kuongeza, unaweza kujifunza usanidi zaidi wa amri ya sudo kwa kusoma: Tofauti Kati ya su na sudo na Jinsi ya Kusanidi sudo katika Linux.

Ni hayo tu! Unaweza kushiriki usanidi mwingine muhimu wa amri ya sudo au hila na vidokezo na watumiaji wa Linux huko nje kupitia sehemu ya maoni hapa chini.