Ero sivun ”Setuid” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(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]]

Nykyinen versio 17. maaliskuuta 2009 kello 11.39

setuid tarkoittaa ohjelman (prosessin) uid-arvon muuttamista toiseksi, joko järjestelmäkutsulla setuid, seteuid tai setreuid tai tiedoston suid-bitillä. Ohjelma siis ajetaan osittain tai kokonaan eri 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. setuid vaihtaa pääkäyttäjän kutsumana uid-arvon pysyvästi, toinen järjestemäkutsu seteuid mahdollistaa pääkäyttäjäoikeuksien palauttamisen. setreuid asettaa sekä käytettävän että "oikean" uid:n. Ryhmien hallintaan on vastaavat järjestelmäkutsut (setgid & kumpp.) ja tiedoston sgid-bitti.

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.

Linuxissa on oma neljäs uid:nsä, joka yleensä on sama kuin euid, mutta voidaan muuttaa tästä erillään kutsulla setfsuid, 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 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 manuaalisivuilla.