Ero sivun ”Setuid” versioiden välillä

Siirry navigaatioon Siirry hakuun
744 merkkiä lisätty ,  17. maaliskuuta 2009
muitoiluja, täydennystä, setfsuid, +Luokka:Tietoturva
(järjestelmäkutsut)
(muitoiluja, täydennystä, setfsuid, +Luokka:Tietoturva)
 
Rivi 1: Rivi 1:
'''setuid''' tarkoittaa ohjelman (prosessin) [[UID|uid]]-arvon muuttamista toiseksi, joko järjestelmäkutsulla <tt>setuid(2)</tt> tai [[Tiedoston oikeudet#Erikoisoikeudet|tiedoston suid-bitillä]]. Ohjelma siis ajetaan osittain tai kokonaan eri [[käyttäjä|tunnuksen]] oikeuksin. setuid edellyttää yleensä pääkäyttäjän oikeuksia (tarkemmin CAP_SETUID-lippua). <tt>setuid(2)</tt> vaihtaa pääkäyttäjän kutsumana uid-arvon pysyvästi, toinen järjestemäkutsu <tt>seteuid(2)</tt> mahdollistaa pääkäyttäjäoikeuksien palauttamisen. <tt>setreuid(2)</tt> asettaa sekä käytettävän että "oikean" uid:n. [[Ryhmä|Ryhmien]] hallintaan on vastaavat järjestelmäkutsut ja tiedoston sgid-bitti.
'''setuid''' tarkoittaa ohjelman (prosessin) [[UID|uid]]-arvon muuttamista toiseksi, joko järjestelmäkutsulla <tt>setuid</tt>, <tt>seteuid</tt> tai <tt>setreuid</tt> tai [[Tiedoston oikeudet#Erikoisoikeudet|tiedoston suid-bitillä]]. Ohjelma siis ajetaan osittain tai kokonaan eri [[käyttäjä|tunnuksen]] oikeuksin. Kutsut edellyttävät yleensä pääkäyttäjän oikeuksia (tarkemmin CAP_SETUID-lippua) tai että prosessi on käynnistetty suid-ohjelmana. <tt>setuid</tt> vaihtaa pääkäyttäjän kutsumana uid-arvon pysyvästi, toinen järjestemäkutsu <tt>seteuid</tt> mahdollistaa pääkäyttäjäoikeuksien palauttamisen. <tt>setreuid</tt> asettaa sekä käytettävän että "oikean" uid:n. [[Ryhmä|Ryhmien]] hallintaan on vastaavat järjestelmäkutsut (<tt>setgid</tt> & kumpp.) ja tiedoston sgid-bitti.


Linux käyttää kolmea uid-arvoa: "real uid", joka alkujaan on kutsuvan ohjelman (käyttäjän) uid, "effective uid", joka suid-ohjelman tapauksessa on tiedoston omistajan uid, sekä "saved uid", joka asetetaan uid-arvoa vaihdettaessa. suid-ohjelma voi näin vaihtaa oikeuksia kutsuvan prosessin (käyttäjän) oikeuksien ja ohjelmatiedoston omistajan oikeuksien välillä.
Linux käyttää neljä uid-arvoa, joista perinteiset ovat "real uid", joka alkujaan on kutsuvan ohjelman (käyttäjän) uid, "effective uid", joka suid-ohjelman tapauksessa alkujaan on tiedoston omistajan uid, ja "saved uid", joka asetetaan uid-arvoa vaihdettaessa. euid määrää prosessin oikeudet ja sen voi muuttaa ruid:ksi tai suid:ksi. suid-ohjelma voi näin vaihtaa oikeuksia kutsuvan prosessin (käyttäjän) oikeuksien ja ohjelmatiedoston omistajan oikeuksien välillä. Pääkäyttäjän oikeuksin uid:t voi vaihtaa muiksikin.


setuid-kutsun ja siihen liittyvien muiden kutsujen käytös vaihtelee jonkin verran [[ydin|ytimen]] version yms. mukaan. Näitä kutsuja käyttävän on syytä varmistaa, että ohjelma toimii toivotulla tavalla kaikissa ympäristöissä tai että ohjelma varoittaa yritettäessä asentaa sitä järjestelmään, jonka toiminnasta ei ole tietoa.
Linuxissa on oma neljäs uid:nsä, joka yleensä on sama kuin euid, mutta voidaan muuttaa tästä erillään kutsulla <tt>setfsuid</tt>, jolloin tiedosto-oikeudet tulkitaan tämän neljännen uid:n mukaan. Tarkoitus on vähentää ennen kaikkea NFS-palvelimen haavoittuvuutta, koska tavallisen käyttäjän uid euid:na saattaa mahdollistaa signaalien lähettämisen palvelimelle ja siten toiminnan häiritsemistä.
 
setuid-kutsun ja siihen liittyvien muiden kutsujen käytös vaihtelee jonkin verran [[ydin|ytimen]] version yms. mukaan. Näitä kutsuja käyttävän on syytä varmistaa, että ohjelma toimii toivotulla tavalla kaikissa ympäristöissä tai että ohjelma varoittaa yritettäessä asentaa sitä järjestelmään, jonka toiminnasta ei ole tietoa. Lisätietoa [[man]]uaalisivuilla.


[[Luokka:Järjestelmä]]
[[Luokka:Järjestelmä]]
[[Luokka:Tietoturva]]
785

muokkausta

Navigointivalikko