10 hyödyllistä Sudoers-konfiguraatiota "sudon" asettamiseen Linuxissa


Linuxissa ja muissa Unixin kaltaisissa käyttöjärjestelmissä vain root-käyttäjä voi suorittaa kaikki komennot ja suorittaa tiettyjä kriittisiä toimintoja järjestelmässä, kuten asentaa ja päivittää, poistaa paketteja, luoda käyttäjiä ja ryhmiä, muokata tärkeitä järjestelmiä. asetustiedostot ja niin edelleen.

Pääkäyttäjän roolin ottava järjestelmänvalvoja voi kuitenkin sallia muiden tavallisten järjestelmän käyttäjien sudo-komennon ja muutamien kokoonpanojen avulla suorittaa joitain komentoja sekä suorittaa useita tärkeitä järjestelmätoimintoja, mukaan lukien yllä mainitut.

Vaihtoehtoisesti järjestelmänvalvoja voi jakaa pääkäyttäjän salasanan (mikä ei ole suositeltu tapa), jotta normaalit järjestelmän käyttäjät pääsevät pääkäyttäjän tiliin su-komennon avulla.

sudo sallii sallitun käyttäjän suorittaa komennon pääkäyttäjänä (tai muuna käyttäjänä) suojauskäytännön mukaisesti:

  1. Se lukee ja jäsentää tiedostoa /etc/sudoers, etsii kutsuvan käyttäjän ja sen käyttöoikeudet,
  2. pyytää sitten kutsuvalta käyttäjältä salasanaa (yleensä käyttäjän salasanaa, mutta se voi olla myös kohdekäyttäjän salasana. Tai se voidaan ohittaa NOPASSWD-tunnisteen avulla),
  3. sen jälkeen sudo luo aliprosessin, jossa se kutsuu setuid() vaihtaakseen kohdekäyttäjään
  4. seuraavaksi se suorittaa komentotulkin tai komennon, joka annetaan argumenteina yllä olevassa lapsiprosessissa.

Alla on kymmenen /etc/sudoers-tiedostokokoonpanoa sudo-komennon toiminnan muokkaamiseksi Oletukset-merkinnöillä.

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

Oletusarvojen tyypit

Defaults                parameter,   parameter_list     #affect all users on any host
Defaults@Host_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

Tämän oppaan laajuudessa nollataan ensimmäiseen oletusarvoihin alla olevissa lomakkeissa. Parametrit voivat olla lippuja, kokonaislukuarvoja, merkkijonoja tai luetteloita.

Huomaa, että liput ovat implisiittisesti totuusarvoja ja ne voidaan kytkeä pois päältä '!'-operaattorilla, ja luetteloissa on kaksi ylimääräistä määritysoperaattoria, += (lisää luetteloon) ja -= (poista luettelosta).

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

1. Aseta suojattu polku

Tätä polkua käytetään jokaisessa sudolla suoritettavassa komennossa, sillä on kaksi merkitystä:

  1. Käytetään, kun järjestelmänvalvoja ei luota sudo-käyttäjillä turvalliseen PATH-ympäristömuuttujaan
  2. Jos haluat erottaa "juuripolun" ja "käyttäjäpolun ", tämä asetus ei vaikuta vain exampt_group-määritteen määrittämiin käyttäjiin.

Aseta se lisäämällä rivi:

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

2. Ota sudo käyttöön TTY-käyttäjän kirjautumisistunnossa

Jotta sudo voidaan kutsua oikeasta tty-tiedostosta, mutta ei menetelmien, kuten cron- tai cgi-bin-komentosarjan avulla, lisää rivi:

Defaults  requiretty   

3. Suorita Sudo-komento käyttämällä pty-komentoa

Muutaman kerran hyökkääjät voivat ajaa haittaohjelmia (kuten viruksia tai haittaohjelmia) sudon avulla, mikä taas haaroittaisi taustaprosessin, joka jää käyttäjän päätelaitteeseen, vaikka pääohjelma olisi suoritettu loppuun.

Välttääksesi tällaisen skenaarion, voit määrittää sudon suorittamaan muita komentoja vain psuedo-pty-komennolla käyttämällä use_pty-parametria riippumatta siitä, onko I/O-loki käytössä vai ei seuraa:

Defaults  use_pty

4. Luo Sudo-lokitiedosto

Oletuksena sudo kirjautuu syslog(3) kautta. Voit kuitenkin määrittää mukautetun lokitiedoston käyttämällä logfile-parametria seuraavasti:

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

Voit kirjata isäntänimen ja nelinumeroisen vuoden muokattuun lokitiedostoon käyttämällä parametreja log_host ja log_year seuraavasti:

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

Alla on esimerkki mukautetusta sudo-lokitiedostosta:

5. Kirjaa Sudo Command Input/Output

Parametrit log_input ja log_output mahdollistavat sudon suorittamisen komennon pseudo-tty-muodossa ja kirjaamaan kaikki käyttäjän syötteet ja kaikki näytölle lähetetyt lähdöt.

Oletusarvoinen I/O-lokihakemisto on /var/log/sudo-io, ja jos istunnon järjestysnumero on, se tallennetaan tähän hakemistoon. Voit määrittää mukautetun hakemiston iolog_dir-parametrin avulla.

Defaults   log_input, log_output

Joitakin erotussarjoja tuetaan, kuten %{seq}, joka laajenee monotonisesti kasvavaan 36-kantaiseen järjestysnumeroon, kuten 000001, jossa jokaista kahta numeroa käytetään uuden hakemiston muodostamiseen, esim. 00/00/01 kuten alla olevassa esimerkissä:

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

Voit tarkastella loput kyseisessä hakemistossa olevat tiedostot cat-komennolla.

6. Luento Sudo-käyttäjät

Jos haluat opettaa sudo-käyttäjille salasanan käytöstä järjestelmässä, käytä lecture-parametria alla kuvatulla tavalla.

Sillä on 3 mahdollista arvoa:

  1. aina – aina luennoi käyttäjää.
  2. kerran – vain luennoi käyttäjää, kun hän suorittaa sudo-komennon ensimmäisen kerran (tätä käytetään, kun arvoa ei ole määritetty)
  3. ei koskaan – älä koskaan lue käyttäjää.
 
Defaults  lecture="always"

Lisäksi voit määrittää mukautetun luentotiedoston parametrilla lecture_file, kirjoita tiedostoon sopiva viesti:

Defaults  lecture_file="/path/to/file"

7. Näytä mukautettu viesti, kun annat väärän sudo-salasanan

Kun käyttäjä antaa väärän salasanan, komentorivillä näkyy tietty viesti. Oletusviesti on "anteeksi, yritä uudelleen", voit muokata viestiä badpass_message-parametrilla seuraavasti:

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

8. Kasvata sudo-salasanayritysten rajaa

Parametria passwd_tries käytetään määrittämään, kuinka monta kertaa käyttäjä voi yrittää antaa salasanan.

Oletusarvo on 3:

Defaults   passwd_tries=5 

Jos haluat asettaa salasanan aikakatkaisun (oletus on 5 minuuttia) passwd_timeout-parametrilla, lisää alla oleva rivi:

Defaults   passwd_timeout=2

9. Anna Sudon loukata sinua, kun annat väärän salasanan

Jos käyttäjä kirjoittaa väärän salasanan, sudo näyttää loukkaukset päätelaitteessa loukkausparametrilla. Tämä poistaa automaattisesti badpass_message-parametrin käytöstä.

Defaults  insults 

Lue lisää: Anna Sudon loukata sinua, kun annat väärän salasanan

10. Lue lisää Sudo-määrityksistä

Lisäksi voit oppia lisää sudo-komentomäärityksistä lukemalla: Ero su:n ja sudon välillä ja Sudon määrittäminen Linuxissa.

Se siitä! Voit jakaa muita hyödyllisiä sudo-komentokokoonpanoja tai temppuja ja vinkkejä Linux-käyttäjien kanssa alla olevan kommenttiosion kautta.