Su: n ja sudon välinen ero ja sudon määrittäminen Linuxissa


Linux-järjestelmä on paljon suojattu kuin mikään sen vastine. Yksi tapa toteuttaa tietoturva Linuxissa on käyttäjien hallintakäytäntö ja käyttäjän käyttöoikeudet, eikä tavallisilla käyttäjillä ole valtuuksia suorittaa mitään järjestelmän toimintoja.

Jos tavallisen käyttäjän on suoritettava järjestelmän laajuisia muutoksia, hänen on käytettävä joko su- tai sudo-komentoa.

HUOMAUTUS - Tämä artikkeli soveltuu paremmin Ubuntu-pohjaisiin jakeluihin, mutta myös useimpiin suosittuihin Linux-jakeluihin.

"Su" pakottaa sinut jakamaan pääsalasanasi muille käyttäjille, kun taas 'sudo' mahdollistaa järjestelmän komentojen suorittamisen ilman root salasanaa. "Sudo" antaa sinun käyttää omaa salasanaasi järjestelmän komentojen suorittamiseen, ts. Siirtää järjestelmän vastuun ilman root salasanaa.

'Sudo' on pääbinaarinen setuid , joka suorittaa juurikomennot valtuutettujen käyttäjien puolesta ja käyttäjien on annettava oma salasanansa suorittamaan järjestelmän komento ja sen jälkeen sudo.

Voimme suorittaa '/ usr/sbin/visudo' lisätä/poistaa luettelon käyttäjistä, jotka voivat suorittaa 'sudo'.

$ sudo /usr/sbin/visudo

Näyttökuva tiedostosta/usr/sbin/visudo näyttää tältä:

Sudo-luettelo näyttää oletusarvoisesti seuraavalta merkkijonolta:

root ALL=(ALL) ALL

Huomaa: Sinun on oltava root , jotta voit muokata/usr/sbin/visudo-tiedostoa.

Monissa tilanteissa järjestelmänvalvoja, erityisesti kentän uusi käyttäjä, löytää merkkijonon "root ALL = (ALL) ALL" mallina ja myöntää rajoittamattoman pääsyn muille, mikä voi olla erittäin haitallista.

'/ Usr/sbin/visudo' -tiedoston muokkaaminen alla olevan mallin kaltaiseksi voi olla todella vaarallista, ellet usko kaikkia lueteltuja käyttäjiä täysin.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Oikein määritetty sudo on erittäin joustava, ja suoritettavien komentojen määrä voidaan määrittää tarkasti.

Määritetyn sudo-rivin syntakse on:

User_name Machine_name=(Effective_user) command

Yllä oleva syntaksi voidaan jakaa neljään osaan:

  1. Käyttäjänimi: Tämä on sudo-käyttäjän nimi.
  2. Koneen_nimi: Tämä on isäntänimi, jossa sudo-komento on kelvollinen. Hyödyllinen, kun sinulla on paljon isäntäkoneita.
  3. (Efektiivinen_käyttäjä): Tehokas käyttäjä, joka saa suorittaa komennot. Tämän sarakkeen avulla käyttäjät voivat suorittaa järjestelmäkomentoja.
  4. Komento: komento tai joukko komentoja, jotka käyttäjä voi suorittaa.

Jotkut tilanteista ja niitä vastaava sudo-rivi:

Q1. Sinulla on käyttäjämerkki, joka on tietokannan järjestelmänvalvoja. Sinun on tarkoitus antaa hänelle kaikki käyttöoikeudet vain tietokantapalvelimelle (beta.database_server.com), etkä missään palvelimessa.

Yllä olevassa tilanteessa sudo-rivi voidaan kirjoittaa seuraavasti:

mark beta.database_server.com=(ALL) ALL

Q2. Sinulla on käyttäjä 'tom', jonka oletetaan suorittavan järjestelmän komento muuna käyttäjänä kuin pääkäyttäjänä samassa tietokantapalvelimessa, selitetty yllä.

Yllä olevassa tilanteessa sudo-rivi voidaan kirjoittaa seuraavasti:

mark beta.database_server.com=(tom) ALL

Q3. Sinulla on sudo-käyttäjä 'kissa', jonka on tarkoitus suorittaa vain komento 'koira'.

Edellä mainitun tilanteen toteuttamiseksi voimme kirjoittaa "sudo" seuraavasti:

mark beta.database_server.com=(cat) dog

Q4. Entä jos käyttäjälle on annettava useita komentoja?

Jos käyttäjän oletettavasti suorittamien komentojen määrä on alle 10, voimme sijoittaa kaikki komennot vierekkäin, välilyönnillä niiden välillä, kuten alla on esitetty:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

Jos tämä komentoluettelo vaihtelee alueittain, jolloin kirjaimellisesti ei ole mahdollista kirjoittaa kutakin komentoa manuaalisesti, on käytettävä aliaksia . Alias! Joo Linux-apuohjelma, jossa pitkäkestoista komentoa tai komentoluetteloa voidaan kutsua pieneksi ja helpoksi avainsanaksi.

Muutama alias -esimerkki, joita voidaan käyttää sudo-määritystiedostossa olevan merkinnän sijasta.

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

Käyttäjien sijasta on mahdollista määrittää järjestelmäryhmät, jotka kuuluvat kyseiseen ryhmään, jolle vain lisätään "%" alla:

%apacheadmin WEBSERVERS=(www) APACHE

Q5. Entä sudo-komennon suorittaminen ilman salasanaa?

Voimme suorittaa sudo-komennon kirjoittamatta salasanaa käyttämällä lippua 'NOPASSWD'.

adam ALL=(ALL) NOPASSWD: PROCS

Täällä käyttäjä 'adam' voi suorittaa kaikki "PROCS" -aliasetut komennot ilman salasanaa.

"Sudo" tarjoaa sinulle vankan ja turvallisen ympäristön, jossa on paljon joustavuutta verrattuna "su": een. Lisäksi sudo-kokoonpano on helppoa. Joissakin Linux-jakeluissa "sudo" on oletusarvoisesti käytössä, kun taas suurin osa tämän päivän distroista tarvitsee sinut ottamaan se käyttöön turvatoimenpiteenä.

Voit lisätä käyttäjän (bob) sudoon suorittamalla alla olevan komennon juuri.

adduser bob sudo

Tässä kaikki tältä erää. Olen täällä taas toisen mielenkiintoisen artikkelin kanssa. Till sitten pysy kuulolla ja yhteydessä Tecmintiin. Älä unohda antaa meille arvokasta palautettasi kommenttiosastollamme.