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:
- Se lukee ja jäsentää tiedostoa /etc/sudoers, etsii kutsuvan käyttäjän ja sen käyttöoikeudet,
- 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),
- sen jälkeen sudo luo aliprosessin, jossa se kutsuu setuid() vaihtaakseen kohdekäyttäjään
- 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ä:
- Käytetään, kun järjestelmänvalvoja ei luota sudo-käyttäjillä turvalliseen PATH-ympäristömuuttujaan
- 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:
- aina – aina luennoi käyttäjää.
- 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)
- 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.