Setuid
Setuid ja Setgid ovat Unix -termejä , lyhenne sanoista "Set User ID" ja "Set Group ID". Setuid, jota joskus kutsutaan myös " suidiksi" ja "setgid" ovat käyttöoikeuksia, jotka voidaan määrittää tiedostoille tai hakemistoille Unix - pohjaisessa käyttöjärjestelmässä . Niitä käytetään pääasiassa sallimaan järjestelmän käyttäjien suorittaa binaareja korotetuilla oikeuksilla väliaikaisesti tietyn tehtävän suorittamiseksi.
Jos tiedostossa on "Setuid"-bitti aktivoitu, se tunnistetaan "s"-kirjaimella luettelossa seuraavasti:
-rwsr-xr–x 1 root shadow 27920 ago 15 22:45 /usr/bin/passwd
Tämä ominaisuus vaaditaan, jotta tavalliset käyttäjät voivat suorittaa tehtäviä, jotka vaativat korkeampia oikeuksia kuin tavallisen käyttäjän käytettävissä olevat. Jotkin tehtävät, jotka vaativat lisäoikeuksia, eivät välttämättä ole ilmeisiä (esimerkiksi ping -komento , jonka on lähetettävä ja kuunneltava ohjauspaketteja verkkoliitännän kautta).
Setuid suoritettavissa tiedostoissa
Normaalisti tämä bitti asetetaan suoritettaville tiedostoille. Kun binääriselle suoritettavalle tiedostolle on määritetty setuid-attribuutti, normaalit järjestelmän käyttäjät voivat suorittaa kyseisen tiedoston ja saada oikeudet käyttäjältä, joka omistaa kyseisen tiedoston (yleensä root ) luodussa prosessissa . Kun prosessi saa järjestelmänvalvojan oikeudet, sovellus voi suorittaa järjestelmässä tehtäviä, joita tavalliset käyttäjät eivät normaalisti pystyisi tekemään. Järjestelmä estää suoritettavan tiedoston anonutta käyttäjää muuttamasta uutta prosessia millään tavalla, kuten käyttämällä ptracea, LD_LIBRARY_PATH :ta tai lähettämästä sille signaaleja (päätteestä tulevat signaalit hyväksytään).
Esimerkiksi setuid-bittiä käytetään /usr/bin/passwd-tiedostossa, jotta jokainen voi vaihtaa salasanansa hallitusti. Tämän ohjelman suorittamisen ansiosta käyttäjä voi kirjoittaa salasanatiedostoon (/etc/shadow, ei pidä sekoittaa tiedostoon /etc/passwd), mutta ilman tiedostolle kirjoitusoikeuksia, mikä olisi suuri tietoturva-aukko.
Vaikka setuid-ominaisuus on erittäin hyödyllinen monissa tapauksissa, se voi aiheuttaa turvallisuusriskin, jos setuid-attribuutti on määritetty suoritettaville ohjelmille , joita ei ole suunniteltu huolellisesti. Käyttäjät voivat hyödyntää bugisten ohjelmien haavoittuvuuksia saadakseen pysyvästi korotettuja käyttöoikeuksia tai ajaa tahattomasti troijalaista .
Attribuutti setgid sallii ryhmäpohjaisten oikeuksien muuttamisen prosessissa samalla tavalla kuin setuid tekee käyttäjäpohjaisille oikeuksille.
Setuid hakemistoissa
Setgid-lipulla hakemistossa on täysin erilainen merkitys kuin sen sovelluksella tiedostoissa. Hakemistot, joilla on setgid-oikeudet, pakottavat kaikki niihin luodut tiedostot ja alihakemistot kuulumaan hakemiston omistajan ryhmään, eivät tiedoston tai alihakemiston luovan käyttäjän ryhmään.
Setuid-lipulla ei sen sijaan ole vaikutusta, jos sitä käytetään hakemistoon. Syynä on se, että jos levität hakemiston omistajan kyseisessä hakemistossa luotuihin objekteihin, siellä tiedoston luova käyttäjä menettäisi välittömästi tiedoston omistajan oikeudet, mikä ehkä estäisi häntä käyttämästä tai muokkaamasta sitä enää koskaan. .
Esimerkkejä
Lisää SUID-oikeudet esimerkkibinaariin (käyttäjä)
# chmod u+s /home/user/executable
Poista SUID-oikeudet binäärille (käyttäjälle)
# chmod us /bin/ping
Lisää GUID-käyttöoikeudet esimerkkibinaariin (ryhmä)
# chmod g+s /home/user/executable
Poista GUID-käyttöoikeudet esimerkkibinaariin (ryhmä)
# chmod gs /home/user/executable
SUID-attribuutteja sisältävän binaarin käyttöoikeuksien tarkasteleminen
# ls -al /bin/ping
-rwsr-xr-x 1 juurijuuri 35712 2011 -05-03 12 :43 /bin/ping
Etsi kaikki tiedostot, joilla on SUID- tai SGID-oikeudet
# etsi / -polku /proc -leimaa -o -tyyppi f -perm +6000 -ls
Etsi kaikki tiedostot, joilla on vain SUID-oikeudet
# etsi / -polku /proc -leimaa -o -tyyppi f -perm +4000 -ls
Etsi kaikki tiedostot, joilla on vain SGID-oikeudet
# etsi / -polku /proc -leimaa -o -tyyppi f -perm +2000 -ls
Käyttöesimerkkejä
SUID
4711 oikeudet rootin omistamalle suoritettavalle tiedostolle .
Käyttäjä nimeltä so-and-so yrittää suorittaa tiedoston. Suoritettavan tiedoston käyttöoikeudet on asetettu kaikille käyttäjille, joilla on suoritusoikeus (471 1 ), joten so-and- to voivat suorittaa tiedoston. Tiedoston omistaja on pääkäyttäjä ja SUID-oikeus on asetettu ( 4 711), joten tiedosto toimii pääkäyttäjänä .
Tällä tavalla tiedosto suoritetaan pääkäyttäjänä , mikä tarkoittaa, että se ja niin voivat muokata muita tiedostoja, joita se ei normaalisti pysty myöntämättä niin ja niin täysiä oikeuksia. Tätä käytetään binääritiedostossa /usr/bin/passwd. sinun on muokattava y - passwdtiedostoa , joka tallentaa käyttäjätilitiedot ja salasanat, mutta näitä tiedostoja voi muokata vain root .
/etc/passwd/etc/shadow
[ so-and-so @ host ~ ] $ stat -c "%a %U:%G %n" /usr/bin/passwd
4701 root:root /usr/bin/passwd
[ so-ja-so @ host ~ ] $ passwd
Salasanan vaihtaminen niin ja niin.
OPAS
2071 "kasvit"-niminen hakemisto, jonka omistajaryhmänä on "sulttaani" ja omistajakäyttäjänä "juuri".
Käyttäjä nimeltä "so-and-so" kuuluu ensisijaisesti ryhmään "niin ja niin" ja toissijaisesti ryhmään "sultaani". "so-and-so" luo uuden "mango"-nimisen hakemiston "plants"-hakemistoon. Ryhmä, joka omistaa uuden hakemiston nimeltä "mango", perii "sultanon".
Ilman GUID:ia omistajaryhmä olisi ollut "niin ja niin".
[ niin ja niin @ isäntä ~ ] $ ryhmät niin
- ja niin se ja niin : niin ja niin sulttaani
[ so-and-so @ host ~ ] $ stat -c "%a %U:%G %n" ~/plants/
2770 so-and-so:sultan /home/so-and-so/plants/
[ niin ja niin @ host ~ ] $ mkdir ~/plants/mango
[ niin ja niin @ isäntä ~ ] $ kosketa ~/plants/.mango
[ so-and-so @ host ~ ] $ stat -c "%U:%G %n" ~/plants/mango/
so-and -so:sultan /home/so-and-so/plants/mango/
[ so-and-so @ host ~ ] $ stat -c "%U:%G %n" ~/plants/.mango
so-and- so:sultan /home/so-and-so/plants/.mango
[ niin ja niin @ host ~ ] $ kosketustesti
[ so-and-so @ host ~ ] $ stat -c "%U:%G %n" ~/testaa
niin ja niin:niin ja niin /home/so-and-so/test