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:
- Käyttäjänimi: Tämä on sudo-käyttäjän nimi.
- Koneen_nimi: Tämä on isäntänimi, jossa sudo-komento on kelvollinen. Hyödyllinen, kun sinulla on paljon isäntäkoneita.
- (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.
- 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.