Skip to content

Archives

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Categories

  • Ei kategorioita
Trend RepositoryArticles and guides
Articles

SUID ja SGID Linuxissa selitettynä esimerkkien avulla

On 1 lokakuun, 2021 by admin

Kuvittele tilanne, jossa sinulla on skripti tai suoritettava tiedosto, joka on aina suoritettava tietyllä käyttäjällä yksinkertaisesti siksi, että kyseisellä käyttäjällä on oikeat käyttöoikeudet skriptin suorittamiin toimiin. Haluat myös muiden käyttäjien voivan suorittaa kyseisen skriptin, mutta viime kädessä se on kuitenkin ajettava skriptin alkuperäisenä käyttäjänä (koska kyseisellä käyttäjällä on vain vaaditut käyttöoikeudet suoritettaviin toimiin).

Linux-sovellukset ja -ohjelmat ajetaan oletusarvoisesti täsmälleen samoilla käyttöoikeuksilla kuin käyttäjä, joka ne suorittaa. Tästä syystä tarvitsemme hyvän ratkaisun edellä mainittuun tilanteeseen (eli: Kaikkien käyttäjien pitäisi pystyä suorittamaan tietyn käyttäjän omistama ohjelma ikään kuin omistaja itse suorittaisi sen).

Tässä kohtaa SUID tulee kuvaan. SUID ei ole mitään muuta kuin Linuxissa käytettävissä oleva erikoisoikeusbitti, jolla tämä saavutetaan erittäin helposti.

Jos olet suoritettavan tiedoston omistaja, SUID-oikeusmäärityksen avulla muut käyttäjät suorittavat suoritettavan tiedoston sinun luvallasi eivätkä heidän luvallaan.

SUID-oikeutta käytetään tavallisesti Linuxissa antamaan korotettuja oikeuksia väliaikaisesti suorituksen aikana. Tämä oikeuksien korottaminen ei ole lainkaan pysyvää. Se on väliaikainen korotus vain ohjelman/skriptin suorituksen aikana.

  • Esimerkkejä suoritettavista tiedostoista Linuxissa, joissa SUID-oikeudet on asetettu
  • Miten SUID-komento määritetään Linuxissa?
  • Miten tarkistetaan, onko tiedostoon sovellettu SUID-bittiä vai ei?
  • Miten löytää kaikki tiedostot, joissa SUID-bitti on käytössä linuxissa?
  • Esimerkkejä SGID-tiedostoista linuxissa
  • Miten SGID:n konfigurointi tapahtuu Linuxissa?
  • Miten tarkistaa, onko SGID käytössä tiedostossa tai komentosarjassa?

Esimerkkejä suoritettavista tiedostoista Linuxissa, joissa SUID-oikeudet on asetettu

Ymmärretään tämä tarkastelemalla esimerkkiä. Yllä olevasta suoritettavien tiedostojen luettelosta /usr/bin/passwd on jotain, jonka kaikkien järjestelmän käyttäjien pitäisi olla suoritettavissa (tämä johtuu siitä, että kaikkien käyttäjien pitäisi pystyä vaihtamaan oma salasanansa). Jos et tiedä, miten salasanat toimivat linuxissa, suosittelen lukemaan alla olevan artikkelin.

Lue: Miten salasanat toimivat Linuxissa

Käyttäjän salasanan päivittäminen vaatii käyttäjän muokkaamaan /etc/passwd, /etc/shadow tiedostoa linuxissa. Tämä on kuitenkin sallittua vain root-käyttäjälle. Tästä syystä tiedostoon /usr/bin/passwd sovelletaan SUID-bittiä. Koska root on kyseisen tiedoston omistaja ja SUID on asetettu kyseiseen tiedostoon, kuka tahansa käyttäjä, joka suorittaa komennon /usr/bin/passwd, suorittaa sen root-käyttäjänä. Katsotaanpa tätä käytännössä.

Alhaalla näkyy sarath-nimisen käyttäjän antama passwd-komento. Katsotaan, suoritetaanko tuo passwd-komentoprosessi pääkäyttäjänä.

$ passwdChanging password for user sarath.Changing password for sarath.(current) UNIX password:

Avataan toinen terminaali ja käynnistetään ps aux commad ja katsotaan, suoritetaanko passwd-komentoprosessi pääkäyttäjänä. Tämä voidaan tehdä alla esitetyllä tavalla.

$ ps aux | grep passwdroot 24531 0.0 0.0 156928 1664 pts/0 S+ 07:24 0:00 passwd

Voit selvästi nähdä, että passwd-komentoprosessi on käynnissä pääkäyttäjällä (näkyy yllä olevan tulosteen ensimmäisessä kentässä.). Samoin kuin passwd-komento, mikä tahansa komento aiemmin esitetystä SUID-käytössä olevien tiedostojen luettelosta suoritetaan aina tiedoston omistajan luvalla riippumatta siitä, mikä käyttäjä sitä suorittaa.

Huomaa myös se tosiasia, että jopa ping-komento on SUID-komento (ks. edellä esitetty alkuperäinen lista), tämä johtuu siitä, että PINGin suorittaminen vaatii useita verkko-operaatioita, jotka vain root voi suorittaa.

Miten SUID-komento määritetään Linuxissa?

SUID-komentojen määrittäminen tarvitsemillesi tiedostoille/skripteille on vain yhden CHMOD-komennon päässä.

$ chmod u+s /path/to/file/or/executable

Korvaa yllä olevassa komennossa oleva ”/path/to/file/or/executable” sen skriptin absoluuttisella polulla, johon tarvitset SUID-bitin. Tämä onnistuu myös käyttämällä chmodin numeerista menetelmää.

$ chmod 4755 /path/to/file/or/executable

Ensimmäinen ”4” sanassa ”4755” tarkoittaa SUID-koodia. Toinen esimerkki numeerisesta menetelmästä on esitetty alla.

$ chmod 4750 /path/to/file/or/executable

Periaatteessa numeerisessa menetelmässä yksinkertaisesti lisätään 4 muiden kyseisessä tiedostossa tarvittavien käyttöoikeussarjojen eteen.

Miten tarkistetaan, onko tiedostoon sovellettu SUID-bittiä vai ei?

Voit tarkistaa, onko tiedostoon sovellettu SUID-bittiä vai ei, käyttämällä ls-komentoa alla esitetyllä tavalla.

root@ip-10-12-2-217:# cd /usr/binroot@ip-10-12-2-217:/usr/bin# ls -l passwd-rwsr-xr-x 1 root root 47032 Jul 15 2015 passwd

ls -l-komennon pitäisi näyttää, onko SUID-bittiä käytetty vai ei. Katso vain ls -l -tulosteen ensimmäistä kenttää. S-kirjain -rwsr-xr-x tarkoittaa SUID-bittiä. Joissakin tapauksissa näet ison S-kirjaimen edellä näkemämme pienen s-kirjaimen sijasta. Iso S tarkoittaa, että kyseiseen tiedostoon tai komentosarjaan ei ole sovellettu suoritusoikeutta.

root@ip-10-12-2-217:/usr/bin# chmod -x passwdroot@ip-10-12-2-217:/usr/bin# ls -l passwd-rwSr--r-- 1 root root 47032 Jul 15 2015 passwd

Yllä olevasta tulosteesta näkyy selvästi, että suoritusluvan poistaminen tiedostosta /usr/bin/passwd muutti ls -l:n tulosteen isoksi S:ksi. Suoritusluvan lisääminen takaisin kyseiseen tiedostoon muuttaa sen pieneksi s:ksi, kuten alla näkyy.

root@ip-10-12-2-217:/usr/bin# chmod +x passwdroot@ip-10-12-2-217:/usr/bin# ls -l passwd-rwsr-xr-x 1 root root 47032 Jul 15 2015 passwd

Miten löytää kaikki tiedostot, joissa SUID-bitti on käytössä linuxissa?

Voit käyttää alla olevaa find-komentoa etsiessäsi järjestelmästä kaikki tiedostot, joissa SUID-bitti on käytössä. Jos find-komento on sinulle uusi, suosittelen lukemaan alla olevan artikkelin.

Lue: Etsi-komento Linuxissa esimerkkeineen

root@ip-10-12-2-217:~# find / -perm -4000 -exec ls -l {} \;

Korvaa yllä olevassa komennossa ensimmäinen / haluamallasi sijainnilla löytääksesi kaikki SUID-tiedostot kyseisestä sijainnista. Jos haluat esimerkiksi löytää kaikki tiedostot, joissa on SUID, /usr/bin:n sisältä, suorita alla oleva komento.

Muista, että Linuxissa SUID-bitti jätetään huomioimatta hakemistoissa.

SGID on hyvin samankaltainen kuin SUID. Ainoa ero on, että skripti/tiedosto, johon on määritetty SGID, suoritetaan ryhmän omistajan oikeuksilla.

Jos määrität SGID:n hakemistoihin, kaikki kyseisen hakemiston sisällä luodut tiedostot tai hakemistot ovat saman yhteisen ryhmän omistuksessa(sen hakemiston ryhmän omistaja, johon SGID on määritetty).

Esimerkkejä SGID-tiedostoista linuxissa

Miten SGID:n konfigurointi tapahtuu Linuxissa?

Samankaltainen kuin SUID, SGID voidaan konfiguroida käyttämällä chmod-komentoa alla esitetyllä tavalla.

root@localhost:~# chmod g+s /path/to/file

Korvaa ”/path/to/file”, yllä olevassa komennossa, sen skriptin absoluuttisella polulla, johon tarvitset SGID-bitin. Tämä onnistuu myös käyttämällä chmodin numeerista menetelmää (näkyy alla).

root@localhost:~# chmod 2755 /path/to/file

Miten tarkistaa, onko SGID käytössä tiedostossa tai komentosarjassa?

SuIDin tapaan voit helposti suorittaa ls -l-komennon tiedostolle/hakemistolle selvittääksesi, onko SGID käytössä vai ei. Alla esitetty esimerkki osoittaa saman.

root@ip-10-12-2-217:# cd /usr/binroot@ip-10-12-2-217:/usr/bin# ls -l chage-rwxr-sr-x 1 root shadow 54968 Jul 15 2015 chage

Tiedoston about (-rwxr-sr-x) ensimmäisen kentän pieni s-osa osoittaa SGID-bitin. Samoin kuin SUID, jos ryhmään ei ole sovellettu suoritusoikeutta, se on isolla S:llä pienen S:n sijaan, kuten alla näkyy.

root@ip-10-12-2-217:/usr/bin# chmod g-x chageroot@ip-10-12-2-217:/usr/bin# ls -l chage-rwxr-Sr-x 1 root shadow 54968 Jul 15 2015 chage

Ja suoritusoikeuden ottaminen käyttöön ryhmässä tekee siitä pienen s:n (näkyy alla.)

root@ip-10-12-2-217:/usr/bin# chmod g+x chageroot@ip-10-12-2-217:/usr/bin# ls -l chage-rwxr-sr-x 1 root shadow 54968 Jul 15 2015 chage

Vastaa Peruuta vastaus

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Arkistot

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Meta

  • Kirjaudu sisään
  • Sisältösyöte
  • Kommenttisyöte
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress