Setuid / Setgid: Difference between revisions
(8 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
Setuid ja Setgid õiguseid jagatakse '''chmod''' käsuga. | Setuid ja Setgid õiguseid jagatakse '''chmod''' käsuga. | ||
Setuid ja Setgid saab määratleda nii loabittide (numbrite kujul). Loetavas formaadis ('''r''' - read, '''w''' - write, '''x''' - execute), kus: '''u''' - user(omanik); '''g''' - group(grupp); '''o''' - other(teised kasutajad); '''a''' - all(kõik: omanik, grupp kui ka teised kasutajad.) Setuid-i saab määrata ainult omanikuõigustele ('''u'''. | Setuid ja Setgid saab määratleda nii loabittide (numbrite kujul). Loetavas formaadis ('''r''' - read, '''w''' - write, '''x''' - execute), kus: '''u''' - user(omanik); '''g''' - group(grupp); '''o''' - other(teised kasutajad); '''a''' - all(kõik: omanik, grupp kui ka teised kasutajad.) Setuid-i saab määrata ainult omanikuõigustele ('''u'''). Setgid-i saab määrata ainult grupiõigustele ('''g'''). Enne Setgid või Setuid eriõiguste rakendamist peab teadma täpselt kaustade ja failide sisu, vältimaks õiguste tagamist kõrvalistele kasutajatele. | ||
== Näited == | == Näited == | ||
Line 16: | Line 16: | ||
* Setuid lisamine: | * Setuid lisamine: | ||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | ||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | chmod u+s /usr/bin/passwd | | style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | chmod u+s /usr/bin/passwd | ||
|} | |} | ||
Antud käsuga anti igale kasutajale õigus muuta enda parooli. Parooli muutes käivitatakse passwd | Antud käsuga anti igale kasutajale õigus muuta enda parooli. Parooli muutes käivitatakse passwd fail juurkasutaja (root) õigustega. | ||
Tulemus: | Tulemus: | ||
Line 57: | Line 55: | ||
„'''s'''“ bit näitab grupiõigustes Setgid määratletust. Kõik kasutajad käivitavad netreport faili juurgrupi (root) õigustega. | „'''s'''“ bit näitab grupiõigustes Setgid määratletust. Kõik kasutajad käivitavad netreport faili juurgrupi (root) õigustega. | ||
* Setgid lisamine (kaustad): | * Setgid lisamine (kaustad): | ||
On kaust mille omanik on root ja kaust kuulub grupile Projekt. On kaks kasutajat Mati (kodugrupp Arendaja) ja Kati (kodugrupp Rakadmin). Nii Mati kui ka Kati kuuluvad gruppi Projekt. | |||
On kaust mille omanik on root ja kaust kuulub grupile Projekt. On kaks kasutajat Mati (kodugrupp | |||
{|style="background:lightyellow;width:1000px;margin:3px;border:1px solid lightgrey" | {|style="background:lightyellow;width:1000px;margin:3px;border:1px solid lightgrey" | ||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | ls -l /projekt | | style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | ls -l /projekt | ||
'''d'''rwxrw'''x'''r-x 1 root Projekt 0 2016-11-28 02:46 /projekt | '''d'''rwxrw'''x'''r-x 1 root Projekt 0 2016-11-28 02:46 /projekt | ||
|} | |} | ||
'''d''' | „'''d'''“ näitab, et tegemist on kaustaga (directory). | ||
Kui hetkel Mati looks faili Dokumentatsioon.txt, siis Dokumentatsioon.txt fail | Kui hetkel Mati looks faili Dokumentatsioon.txt, siis Dokumentatsioon.txt fail kuuluks grupile Arendaja: | ||
{|style="background:lightyellow;width:1000px;margin:3px;border:1px solid lightgrey" | {|style="background:lightyellow;width:1000px;margin:3px;border:1px solid lightgrey" | ||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | touch Dokumentatsioon.txt | | style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | touch Dokumentatsioon.txt | ||
Line 78: | Line 74: | ||
Selleks, et Kati (Rakadmin)saaks | Selleks, et Kati (Rakadmin) saaks teha dokumentatsioonifailis muudatusi, tuleb kõigepealt määrata kaustale projekt Setgid: | ||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | ||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | chmod g+s /projekt | | style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | chmod g+s /projekt | ||
Line 91: | Line 87: | ||
„'''s'''“ bit näitab grupiõigustes Setgid määratletust. | „'''s'''“ bit näitab grupiõigustes Setgid määratletust. | ||
Nüüd kui Mati(Arendaja) looks uuesti faili Dokumentatsioon.txt tekiks fail kuuluks grupile Projekt | Nüüd kui Mati (Arendaja) looks uuesti faili Dokumentatsioon.txt, tekiks fail, mis kuuluks grupile Projekt. See tagab kirjutamisõiguse ka Katile(Rakadmin): | ||
{|style="background:lightyellow;width:1000px;margin:3px;border:1px solid lightgrey" | {|style="background:lightyellow;width:1000px;margin:3px;border:1px solid lightgrey" | ||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | touch Dokumentatsioon.txt | | style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" | touch Dokumentatsioon.txt | ||
Line 97: | Line 93: | ||
-rwxrwxr-x 1 root Projekt 0 2016-11-28 02:46 Dokumentatsioon.txt | -rwxrwxr-x 1 root Projekt 0 2016-11-28 02:46 Dokumentatsioon.txt | ||
|} | |} | ||
Line 121: | Line 114: | ||
Näiteks soovime anda failile Setuid: | Näiteks soovime anda failile Setuid: | ||
* lisamiseks: | * lisamiseks: | ||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | ||
Line 145: | Line 137: | ||
Setgid määramiseks tuleb loabittide ette kirjutada 2, sama põhimõte nagu ka Setuid-lgi. | Setgid määramiseks tuleb loabittide ette kirjutada 2, sama põhimõte nagu ka Setuid-lgi. | ||
* lisamiseks: | * lisamiseks: | ||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | ||
Line 213: | Line 204: | ||
Setuid on kasulik õiguste jagamise viis konkreetsetele failidele. Tavakasutajale ei pea andma näiteks juurkasutaja õiguseid, et kindlates failides teha muudatusi. Setgid on kasulik grupi õiguste jagamise viis konkreetsele failile ja kaustale ilma omanikugruppi muutmata. Eelnevalt omades ülevaadet kaustast ja kaustas olevatest failidest on Setgid ja Setuid turvaline viis õiguste jagamiseks. | Setuid on kasulik õiguste jagamise viis konkreetsetele failidele. Tavakasutajale ei pea andma näiteks juurkasutaja õiguseid, et kindlates failides teha muudatusi. Setgid on kasulik grupi õiguste jagamise viis konkreetsele failile ja kaustale ilma omanikugruppi muutmata. Eelnevalt omades ülevaadet kaustast ja kaustas olevatest failidest on Setgid ja Setuid turvaline viis õiguste jagamiseks. | ||
== Kasutatud kirjandus | == Kasutatud kirjandus == | ||
#http://linuxg.net/how-to-set-the-Setuid-and-Setgid-bit-for-files-in-linux-and-unix/ | #http://linuxg.net/how-to-set-the-Setuid-and-Setgid-bit-for-files-in-linux-and-unix/ | ||
#https://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html | #https://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html |
Latest revision as of 04:42, 7 December 2016
Autor
Martin Abel A41
Sissejuhatus
Setuid / SUID (set user id) on kasutajapõhine eriõiguste bit. Setuid-ga antakse kasutajale õigus käivitada programm / fail omanikuõigustega. Setgid / SGID (set group id) on grupipõhine eriõiguste bit. Setgid-ga antakse kasutajale õigused käivitada programm / fail omanikugrupi õigustega.
Setuid ja Setgid lisamine
Setuid ja Setgid õiguseid jagatakse chmod käsuga. Setuid ja Setgid saab määratleda nii loabittide (numbrite kujul). Loetavas formaadis (r - read, w - write, x - execute), kus: u - user(omanik); g - group(grupp); o - other(teised kasutajad); a - all(kõik: omanik, grupp kui ka teised kasutajad.) Setuid-i saab määrata ainult omanikuõigustele (u). Setgid-i saab määrata ainult grupiõigustele (g). Enne Setgid või Setuid eriõiguste rakendamist peab teadma täpselt kaustade ja failide sisu, vältimaks õiguste tagamist kõrvalistele kasutajatele.
Näited
Loetavas formaadis:
- Setuid lisamine:
chmod u+s /usr/bin/passwd |
Antud käsuga anti igale kasutajale õigus muuta enda parooli. Parooli muutes käivitatakse passwd fail juurkasutaja (root) õigustega.
Tulemus:
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 0 2016-11-28 02:46 /usr/bin/passwd |
Vaatamaks kas failil on Setuid määratletud, kasutatakse käsku ls -l. „s“ bit näitab kasutajaõigustes Setuid määratletust.
- Setuid eemaldamine:
chmod u-s /usr/bin/passwd |
Tulemus:
ls -l /usr/bin/passwd
-rwxr-xr-x 1 root root 0 2016-11-28 02:46 /usr/bin/passwd |
Antud käsuga eemaldati kasutajatelt õigus muuta enda parooli. Ainult juurkasutaja (root) saab parooli muuta, sest tal on ainsana kirjutamis (write) õigus. „x“ bit näitab käivitamis (execute) õigust.
- Setgid lisamine (failid):
chmod g+s sbin/netreport |
Tulemus:
ls -l /sbin/netreport
-rwxr-sr-x 1 root root 0 2016-11-28 02:46 /sbin/netreport |
„s“ bit näitab grupiõigustes Setgid määratletust. Kõik kasutajad käivitavad netreport faili juurgrupi (root) õigustega.
- Setgid lisamine (kaustad):
On kaust mille omanik on root ja kaust kuulub grupile Projekt. On kaks kasutajat Mati (kodugrupp Arendaja) ja Kati (kodugrupp Rakadmin). Nii Mati kui ka Kati kuuluvad gruppi Projekt.
ls -l /projekt
drwxrwxr-x 1 root Projekt 0 2016-11-28 02:46 /projekt |
„d“ näitab, et tegemist on kaustaga (directory).
Kui hetkel Mati looks faili Dokumentatsioon.txt, siis Dokumentatsioon.txt fail kuuluks grupile Arendaja:
touch Dokumentatsioon.txt
ls -l -rwxrwxr-x 1 root Arendaja 0 2016-11-28 02:46 Dokumentatsioon.txt |
Selleks, et Kati (Rakadmin) saaks teha dokumentatsioonifailis muudatusi, tuleb kõigepealt määrata kaustale projekt Setgid:
chmod g+s /projekt |
Tulemus:
ls -l /projekt
drwxrwsr-x 1 root projekt 0 2016-11-28 02:46 /projekt |
„s“ bit näitab grupiõigustes Setgid määratletust.
Nüüd kui Mati (Arendaja) looks uuesti faili Dokumentatsioon.txt, tekiks fail, mis kuuluks grupile Projekt. See tagab kirjutamisõiguse ka Katile(Rakadmin):
touch Dokumentatsioon.txt
ls -l -rwxrwxr-x 1 root Projekt 0 2016-11-28 02:46 Dokumentatsioon.txt |
- Setgid eemaldamine:
chmod g-s sbin/netreport |
Tulemus:
ls -l /sbin/netreport
-rwxr-xr-x 1 root root 0 2016-11-28 02:46 /sbin/netreport |
Kõik kasutajad käivitavad netreport faili vastavalt enda õigustele või gruppi kuuluvusele.
Loabittide formaadis (numbrite kujul):
Setuid määramiseks tuleb loabittide ette kirjutada 4 ja õigusbitid(775) järgi. Kus (775) on faili omanikul r,w,x õigused; (775) grupil r,w,x õigused ja (775)teistel kasutajatel r,x õigused. Read - 4; Write - 2; Execute 1 => rwx=4+2+1=7 ja rx=4+1=5
Näiteks soovime anda failile Setuid:
- lisamiseks:
chmod 4775 kaust/failinimi |
Tulemus:
ls -l /kaust/failinimi/
-rwsrwxr-x 1 root root 0 2016-11-28 02:46 /kaust/failinimi/ |
- eemaldamiseks:
chmod 0775 kaust/failinimi |
Tulemus:
ls -l /kaust/failinimi/
-rwxrwxr-x 1 root root 0 2016-11-28 02:46 /kaust/failinimi/ |
Setgid määramiseks tuleb loabittide ette kirjutada 2, sama põhimõte nagu ka Setuid-lgi.
- lisamiseks:
chmod 2775 kaust/failinimi |
Tulemus:
ls -l /kaust/failinimi/
-rwxrwsr-x 1 root root 0 2016-11-28 02:46 /kaust/failinimi/ |
- eemaldamiseks:
chmod 0775 kaust/failinimi |
Tulemus:
ls -l /kaust/failinimi/
-rwxrwxr-x 1 root root 0 2016-11-28 02:46 /kaust/failinimi/ |
Setuid ja Setgid määramiseks tuleb kasutada loabitti 6.
- lisamiseks:
chmod 6775 kaust/failinimi |
Tulemus:
ls -l /kaust/failinimi/
-rwsrwsr-x 1 root root 0 2016-11-28 02:46 /kaust/failinimi/ |
- eemaldamiseks:
chmod 0775 kaust/failinimi |
Tulemus:
ls -l /kaust/failinimi/
-rwxrwxr-x 1 root root 0 2016-11-28 02:46 /kaust/failinimi/ |
Failide leidmine millele on määratletud Setuid või Setgid
- Setuid:
find / -type f -perm /4000 |
- Setgid:
find / -type f -perm /2000 |
- Setgid + Setuid:
find / -type f -perm /6000 |
Kokkuvõte
Setuid on kasulik õiguste jagamise viis konkreetsetele failidele. Tavakasutajale ei pea andma näiteks juurkasutaja õiguseid, et kindlates failides teha muudatusi. Setgid on kasulik grupi õiguste jagamise viis konkreetsele failile ja kaustale ilma omanikugruppi muutmata. Eelnevalt omades ülevaadet kaustast ja kaustas olevatest failidest on Setgid ja Setuid turvaline viis õiguste jagamiseks.
Kasutatud kirjandus
- http://linuxg.net/how-to-set-the-Setuid-and-Setgid-bit-for-files-in-linux-and-unix/
- https://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html
- http://thegeekdiary.com/what-is-suid-sgid-and-sticky-bit/
- http://www.codecoffee.com/tipsforlinux/articles/028.html
- http://kuutorvaja.eenet.ee/kasutamine/os/failioigused.html
- http://linoxide.com/how-tos/stickbit-suid-guid/