kattava opas Master Sudoers-Tiedoston avaamiseen.

Harsha Koushik

Seuraa

– Apr 18, 2020 · 10 min lue

Mikä on Sudoers-Tiedosto?

Sudoers-tiedosto on aivan kuten mikä tahansa muu Linux-käyttöjärjestelmän tiedosto., Mutta sillä on tärkeä rooli sen hallinnassa, mitä ”käyttäjä” tai ”käyttäjät ryhmässä” voivat tehdä järjestelmässä.

miksi nimi Sudoers?

sana Sudo on lyhenne sanasta ”Super User Do”. Kuten se selvästi ehdottaa — se on aivan kuin kertoa ytimen / OS ” sinulla ei ole vaihtoehtoa, vain tehdä se!”. Sudo-luvalla toimivia käyttäjiä kutsutaan Sudo-käyttäjiksi. Kaikkien näiden sudo-käyttäjien hallinta tapahtuu sudoers-tiedostoksi kutsutun tiedoston kautta. Tämä tiedosto elää myös / etc-hakemistossa kuten mikä tahansa muu asetustiedosto.,

Kuva-1. Sudoers-tiedosto / etc-hakemistossa. Käyttöjärjestelmä : Kali Linux 2019.4

Miksi Sudoers-Tiedosto?

normaalilla käyttäjällä Linuxissa on monia rajoituksia järjestelmässä. Esimerkiksi-käyttäjä ei voi käynnistää palvelua, muuttaa config-tiedostoa tai suorittaa skriptiä järjestelmässä oletuksena. Turvallisuusnäkökulmasta tämä näyttää täydelliseltä.,

mutta, ottakaamme esimerkki — sinun on järjestelmän ylläpitäjänä hallittava kaikkia käyttäjiä ja niiden hallintalaitteita. Sinulla on sivusto isännöi Apache yhdellä palvelimistasi. Sinulla on jo Web-Admin hallita sitä. Hänelle pitäisi luoda käyttäjä www-palvelimelle. Tämän käyttäjän on sallittava tehdä kaksi asiaa, joita tavallinen käyttäjä ei voi tehdä :

  • Start/Restart Apache Service, Jos se pysähtyy.
  • muokkaa Apachen config-tiedostoa.

Sinulla on kaksi käyttäjän asetukset oletuksena :

  1. Root-Käyttäjä, joka on saanut kaikki oikeudet järjestelmän mukaan lukien Apache.,
  2. normaali käyttäjä, joka oletusarvoisesti ei pysty käynnistämään palvelua tai muokkaamaan mitään config-tiedostoja järjestelmässä.

tällöin sudoers-tiedosto tulee sinulle näppäräksi. Vuonna Sudoers-tiedoston, emme voi tarkalleen määritellä :

  • Web-Admin-käyttäjä voi vain käynnistää Apache-Palvelu &
  • Hän voi vain muokata Apache Config-tiedosto.

Pelaa kanssa Sudoers-Tiedosto

Tarpeeksi teoriaa, teemme oikeita juttuja nyt. Selitän jokaisen kohdan Sudoers-tiedostossa muutamilla esimerkeillä., Oletuksena Sudoers-tiedosto näyttää tältä.

Kuva-2. Muokkaamaton Sudoers-Tiedosto. Käyttöjärjestelmä: Kali Linux 2019.4

Ensisijaisesti voimme nähdä viidestä osasta tiedosto — ensimmäiset kolme osaa tiedosto liittyvät ALIAS, Host, User ja Nicosiassa., Puhumme ALIAS myöhemmin, ensimmäinen puhutaanpa ydin kohta :

#User Privilege Specification

root ALL = (ALL:ALL) ALL

Huomautus: ’#’ tarkoittaa, kommentti-tiedoston, OS ohittaa tämän linjan suoritettaessa.,

Syntax : Käyttäjä <tilaa> OnHost = (Runas-Käyttäjä:Ryhmä) <tilaa> Komennot

Esimerkki: root ALL = (ALL:ALL) KAIKKI

Lue sitä — Käyttäjä Root voi Ajaa mitä Tahansa Komento kuin mikä Tahansa Käyttäjän minkä Tahansa Ryhmän missä Tahansa Host.

→ ensimmäisenä käytetään isäntien määrittelyä. Voimme määritellä Hostname / Ip-osoite sijaan kaikki. Kaikki tarkoittaa mitä tahansa isäntää.

→ Second ALL : Third ALL is User:Group., Sen sijaan kaikki voimme määritellä käyttäjän tai käyttäjän ryhmän kanssa, kuten käyttäjä: ryhmä. Kaikki: kaikki tarkoittaa kaikkia käyttäjiä ja kaikkia ryhmiä.

→ viimeinen kaikki on komento. Sen sijaan, että kaikki, voimme määritellä komennon tai joukon komentoja. Kaikki tarkoittaa kaikkia komentoja.

Voit laittaa sen hyvin yksinkertainen, se on ”kuka, missä = (as_whom) mitä”.

Huomautus: Useimmat ihmiset ymmärtävät, ISÄNNÄT, kuten tietokoneilta. Se on paikallinen nimi/IP-osoite., ISÄNNÄT kenttä on harvoin käytössä, jos haluat tietää enemmän siitä, ISÄNNÄT Sudoers katso → https://www.sudo.ws/man/1.7.10/sudoers.man.html

Pohjimmiltaan emme voi sallia käyttäjän tehdä jotain vain kahdella tavalla —

  1. Suoraan antaa hänelle luvan suorittaa komennon muuttamalla lupaa tiedosto.
  2. salli hänen suorittaa komento toisena käyttäjänä, jolla on jo lupa suorittaa tämä komento.

Sudoers-tiedostossa toteutamme jälkimmäisen.,

käytämme toinen esimerkki selvästi ymmärtää kentät syntaksi:

Esimerkki : sysadmin ALL = (root) /usr/bin/cat /etc/shadow

Lue tämä — Käyttäjä ”sysadmin” voi Ajaa komento ”/usr/bin/cat /etc/shadow”, kuten ROOT-käyttäjän kaikki ISÄNNÄT.

Tässä edellä olevassa esimerkissä komento § — olen lisännyt jotain enemmän kuin komento, tämä on osoitettava joustavuutta Sudoers-tiedoston avaamiseen. Osa ”/ usr/bin / cat” on binäärinen suoritustiedosto tai komento, jota käytetään tiedoston sisällön tarkasteluun., Osa ”/etc/shadow” on luottamuksellinen tiedosto, joka tallentaa salasanat, joten se tarkoittaa, että käyttäjä ”sysadmin” voi vain ajaa ”/usr/bin/cat” on ”/etc/shadow” – tiedosto, jos käyttäjä yrittää tarkastella sisältöä tahansa muu tiedosto, jota hän ei ole lukenut käyttöoikeudet, hän ei voi.,

Syntaksin Sudo komento: sudo <komento>

Esimerkki: sudo cat /etc/shadow

Nyt, jos käyttäjä ”sysadmin” käyttää sudo ennen kuin mitään komentoa, KÄYTTÖJÄRJESTELMÄ on ensin kysyä häneltä, Käyttäjät Salasana, tarkastaa salasanan ja sitten menee Sudoers-tiedoston ja tarkistaa, jos hän ei saa antaa tämän komennon koska tahansa käyttäjä. Jos hän on sallittu-menestys, muuten se ilmoittaa takaisin yhden näistä kahdesta asiasta –

→ käyttäjä ei ole Sudoers-tiedostossa. Tapauksesta tiedotetaan.,

Note : You can see this reported incident in /var/log/auth.log

Image-3. Incident Report — Sudoers. Operating System: Kali Linux 2019.,4

→Sorry, user <username> is not allowed to execute <command> as <User> on <hostname>

Image-4. Cannot Execute Command in Sudoers. Operating System: Kali Linux 2019.,4

Tässä, käyttäjä webadmin on sallittu vain ajaa ”cat /etc/shadow”. Mutta hän kokeili käynnissä ’kissa’ komento ”/ etc / gshadow”, joka ei ole sallittua.

koska olemme saaneet tarpeeksi otetta kentistä sudoers-tiedoston syntaksissa, siirtykäämme eteenpäin ja ymmärtäkäämme muita osioita tiedostossa. Kaikki muut osiot riippuvat jo käsittelemästämme ydinosiosta.,

seuraava kohta on KONSERNIN osa, joka on

#Salli jäsenten ryhmän sudo suorittaa minkä tahansa komennon

%sudo ALL = (ALL:ALL) ALL

Prosenttipiste symbol ’%’ käytetään kuvaamaan ryhmä Sudoers-Tiedoston avaamiseen. Kaikki kentät ja niiden toiminnot tässä osiossa ovat täsmälleen samat kuin edellisessä jaksossa — käyttäjä-osiossa. Voimme antaa samaa Sudo Oikeudet ryhmään sen sijaan, että käyttäjän määrittämällä ryhmän nimi — %<ryhmän nimi>., Niinpä kaikki ryhmän jäsenet perivät samat ryhmälle annetut etuoikeudet.

oletuksena on sudo-ryhmä, joka on määritelty Sudoers-tiedostossa. Voimme nähdä nämä käyttöoikeudet ovat täsmälleen samat kuin pääkäyttäjien käyttöoikeudet tiedostossa. Joten jos käyttäjä on tämän SUDO-ryhmän jäsen, hän voi suorittaa kaikki pääkäyttäjän suorittamat komennot.

määrittelkäämme mukautettu ryhmä ja ymmärtäkäämme syntaksi selkeämmin. Ottakaamme sama vanha järjestelmä Admin esimerkki tehdä niin. Oletetaan ei. työntekijöistä on nyt enemmän, joten järjestelmän ylläpitäjiä on nyt 3., Jokainen näistä tarvitsee samat tarkat käyttöoikeudet, jotka olimme antaneet ensimmäiselle järjestelmänvalvojalle. Yksi asia voimme tehdä tämän saavuttamiseksi on kolme merkinnät kaikki kolme järjestelmän ylläpitäjät Sudoers tiedosto. Jos noudatamme tätä lähestymistapaa, loukkaamme Sudoers-tiedoston ominaisuuksia.

Paras asia tehdä on, että ryhmän kaikki kolme Järjestelmän Ylläpitäjät ryhmään nimetty ’SystemAdminGroup’., Meidän tulee määritellä tarvittavat oikeudet tämän ryhmän kanssa —

%SystemAdminGroup ALL = (root) /usr/bin/cat /etc/shadow

Nyt kaikki kolme ylläpitäjät voivat suorittaa Komennon Etuoikeutettu. Teimme tämän yhdellä kertaa käyttämällä ryhmän määritelmää.

Sudoers-tiedosto pystyy tehostamaan koko prosessia erilaisilla toiminnallisuuksilla. Tämän saavuttamiseksi käytetään kolmea ensimmäistä osaa-peitenimiä., Kuten sana jo viittaa siihen, käytämme ALIAS jotain, jota voimme käyttää koko tiedoston, se on aivan kuin GLOBAALIN MUUTTUJAN Skripti. Miten tämä tekee kokonaisuudesta tehokkaamman? Voimme määritellä komentojen, isäntien ja käyttäjien joukon yhdellä rivillä, osoitamme tämän rivin peitenimellä, tätä peitenimeä käytetään aina ja aina tarvittaessa määrittelemättä kaikkia komentoja/isäntiä/käyttäjiä uudelleen.

haluan lisätä vielä yhden peitenimen, jota ei ole oletusarvoisesti lueteltu sudoers-tiedostossa, joka on ”Run_as ALIAS”., Nyt meillä on neljä ALIASES —

  1. Käyttäjän ALIAS-kuten User_Alias
  2. Ajaa-Kuten ALIAS, kuten Runas_Alias
  3. Isäntä ALIAS kuten Host_Alias
  4. Komento ALIAS kuten Cmnd_Alias

Huomautus : Alias nimi olisi määriteltävä isoja kirjaimia ja voi olla numero, aakkoset ja alaviiva (_). Peitenimi on aloitettava aakkostosta.,3e”>ALIAS Nimi> = <käyttäjätunnus>,<käyttäjätunnus>, <käyttäjätunnus>…

Esimerkki: User_Alias YLLÄPITÄJILLE = john,tim,tom

Käyttö: YLLÄPITÄJILLE ALL = (root) /usr/bin/cat /etc/shadow

Jos haluan joukko sudo oikeudet määritetty käyttäjille — john, tim ja tom, minun ei tarvitse määritellä sitä kolme kertaa, sen sijaan voin Aliaksen ja käyttää tätä Alias Nimi, kun delegoida sudo käyttää niitä.,

Image-5. User Alias in Sudoers File. Operating System: Kali Linux 2019.,figcaption>

Run As ALIAS Syntax —

Runas_Alias <ALIAS Name> =<username>,<username>,<username>…

Example: Runas_Alias MGRS = root,sradmin

Usage: systemadmin ALL = (MGRS) /usr/bin/cat /etc/shadow

If i want to define the set of users a user can run a command as, i can use Runas_Alias., Älä hämmenny täällä, muista vain mestari mantra – kuka missä = (as_whom) mitä. Käytämme peitenimeä ei. käyttäjien ”as_whom” – kentässä.

Kuva-6. Runas Alias sudoers-tiedostossa. Käyttöjärjestelmä: Kali Linux 2019.,4

Isäntä ALIAS Syntaksi —

Käyttö: systemadmin ISÄNNÄT = (root) /usr/bin/cat /etc/shadow

Jos minun täytyy määritellä joukko isäntänimiä, ip-osoitteet tai ip-osoitealue, josta käyttäjän on voitava antaa Etuoikeutettu/Sudo komentoja, voin saavuttaa tämän käyttämällä Isäntä Alias. Jälleen, tämä osa kuuluu ”missä” – kenttään Mestari Lause.

Image-7. Salanimi Sudoers-tiedostossa., Käyttöjärjestelmä: Kali Linux 2019.,iv id=”1ffdf0e914″>

Cmnd_Alias <ALIAS Name> = <cmd1>,<cmd2>, <cmd3>…

Example: Cmnd_Alias SYSADMIN = /usr/sbin/apache2, /usr/bin/cat

Usage: systemadmin ALL = (root) SYSADMIN

If i need to permit a user to execute a set of commands as SUDO, i can define them under a Cmnd_Alias Section and use this ALIAS name while delegating the access., Tämä osa kuuluu” mitä ” – kenttään Mestarilauseessa.

Kuva-8. Cmnd Alias sudoers-tiedostossa. Käyttöjärjestelmä: Kali Linux 2019.4

NOPASSWD-Tila:

Tämä on yksi erityinen ominaisuus Sudoers, jonka avulla Käyttäjä Sudoers-tiedoston, joka suoritetaan etuoikeutetussa komento ilman salasanaa., Tämä on erittäin hyödyllistä suoritettaessa automaattisia skriptejä järjestelmässä tavallisena käyttäjänä, skripti voi joutua suorittamaan etuoikeutetun komennon. Mutta tiedämme jo, mitä tapahtuu, jos joku käyttäjä käyttää sudoa, hänen on syötettävä salasanansa!

muista, että vaikka kyseessä olisi skripti tai prosessi, sen pitäisi toimia käyttäjänä, se ei voi toimia yksin.

kaikki automaattiset skriptit eivät ole tarpeeksi älykkäitä syöttämään salasanaa pyydettäessä. Salasana on kuitenkin mahdollista syöttää automaattisesti. Toistaiseksi meidän ei pidä ajatella älykkäitä käsikirjoituksia., Näin ollen käyttäjä voi käyttää etuoikeutettua komentoa syöttämättä salasanaa.

esimerkki NOPASSWD: Supervisor-komentosarjasta Linuxissa.Käsittelemme esimiestä toisessa kirjoituksessa.

Syntax : sysadmin ALL = (root) NOPASSWD : /usr/sbin/apache2

Parametri Syrjäytymisen ALIAKSIA

Voimme myös lisätä parametreja, jotka tulisi sulkea pois ALIAKSIA. Esimerkiksi, —

User_Alias EXCEPT_ROOT = KAIKKI !,root

sysadmin KAIKKI = (EXCEPT_ROOT) /usr/sbin/apache2

Tämä User_Alias voidaan varmistaa, että KÄYTTÄJÄ voi suorittaa annettu komento, kuten ”kaikki käyttäjät, paitsi ROOT”.

tällainen poissulkeminen voidaan tehdä kaikissa PEITENIMISSÄ, ei vain User_alioissa. Kaikissa PEITENIMISSÄ poissulkemisen syntaksi pysyy samana.

sudoers-Tiedoston käsittely huolella

tähän mennessä on täytynyt ymmärtää, mitä Sudoers-tiedosto voi tehdä ja kuinka tärkeää on käsitellä tiedostoa huolellisesti. Linux toteuttaa jo mekanismin varmistaakseen, että Sudoers-tiedosto käsitellään oikein.,

on aina suositeltavaa olla muokkaamatta/etc / sudoers-tiedostoa suoraan. Siellä on työkalu nimeltä ”visudo”. Tätä käytetään turvallisesti tekemään muutoksia sudoers-tiedostoon. Kun olet muokata sudoers-tiedoston terminalvisudo, terminalvisudo on sisäänrakennettu toiminnallisuus tarkistaa syntaksin ennen tallentamista, jos teet virheen, se on heti kohta, line out, jossa syntaksi ei ole oikea. Tämä visudon toiminnallisuus estää vahingossa vahingoittamasta tiedostoa ja järjestelmää.

päätelmä:

Sudoers-tiedostolla on aina suuri merkitys Käyttäjäkontrollin hallinnassa., Vaikka on olemassa monia tapoja hallita ja valvoa, mitä käyttäjä voi ja ei voi tehdä järjestelmästä, Sudoers menetelmä on aina tehokas ja kestävä tarpeeksi hallita ja ohjata mitä tahansa ei. käyttäjien. Vielä yksi tämän kaltainen menetelmä, joka on syytä mainita, on SUID ja SGID. Puhumme SUID ja SGID toisessa artikkelissa.