Setuid / Setgid

From ICO wiki
Jump to navigationJump to search

Autor

Martin Abel A41

Sissejuhatus

Setuid / SUID (set user id) on kasutajapõhine õiguste bit. Setuid-ga antakse kasutajale õigus käivitada programm / fail omanikuõigustega. Setgid / SGID (set group id) on grupipõhine õiguste bit. Setgid-ga antakse gruppi kuuluvale 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.)

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äivitakase passwd faili 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:
chmod g+s kaust/failinimi
  • Setgid eemaldamine:
chmod g-s kaust/failinimi

Loabittide formaadis (numbrite kujul):

Setuid määramiseks tuleb loabittide ette kirjutada 4 ja õigusbitid järgi. Näiteks soovime anda failile Setuid:

  • lisamiseks:
chmod 4775 kaust/failinimi
  • eemaldamiseks:
chmod 0775 kaust/failinimi

Setgid määramiseks tuleb loabittide ette kirjutada 2, sama põhimõte nagu ka Setuid-lgi.

  • lisamiseks:
chmod 2775 kaust/failinimi
  • eemaldamiseks:
chmod 0775 kaust/failinimi


Setuid ja Setgid määramiseks tuleb kasutada loabitti 6.

  • lisamiseks:
chmod 6775 kaust/failinimi
  • eemaldamiseks:
chmod 0775 kaust/failinimi

Kontrollimaks kas Setuid või Setgid rakendus:

Vaatamaks kas failil on Setuid või Setgid määratletud, kasutatakse käsku ls -l. „s“ näitab kasutaja õigustes ning grupi õigustes Setuid või Setgid määratletust.

  • Käsk:
ls -l
  • Tulemus:
-rwsrwsr-x 1 kasutaja kasutaja 0 2016-11-28 02:46 script

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. Setuid võimaldab jagada kasutajaõiguseid paindlikumalt ilma turvariski tõstmata. Setgid on kasulik grupi õiguste jagamise viis konkreetsele failile ilma faili omanikugruppi muutmata. Võimaldab jagada grupile õiguseid paindlikumalt ilma turvariski tõstmata.

Kasutatud kirjandus:

  1. http://linuxg.net/how-to-set-the-Setuid-and-Setgid-bit-for-files-in-linux-and-unix/
  2. https://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html
  3. http://thegeekdiary.com/what-is-suid-sgid-and-sticky-bit/
  4. http://www.codecoffee.com/tipsforlinux/articles/028.html
  5. http://kuutorvaja.eenet.ee/kasutamine/os/failioigused.html
  6. http://linoxide.com/how-tos/stickbit-suid-guid/