Setuid og setgid

I Unix og Unix-lignende operativsystemer er setuid (forkortelse av set u ser id , tildeler brukeridentifikatoren ) og setgid (forkortelse av set gruppe - id , tildeler gruppeidentifikatoren ) spesielle tillatelser som kan tilskrives filer og kataloger som endrer oppførselen til systemet overfor dem. De kan settes eller fjernes via chmod - kommandoen .

Atferd på filer

Kjørbare filer

Når den brukes på kjørbare filer , tillater setuid - tillatelsen en bruker som allerede har passende utføringstillatelser på filen å kjøre den med rettighetene til brukeren som eier filen så vel som hans egen.

Teknisk sett administreres dette av kjernen , som hvis et nytt program må lastes inn i minnet gjennom et av systemkallene til exec - familien tar seg av å sette den effektive bruker-IDen i prosesskontrollblokken til den nye prosessen med brukeren identifikator for eieren av filen.

Setuid - tillatelsen brukes vanligvis for å tillate ikke-privilegerte brukere å kjøre bestemte programmer med administratorrettigheter ( rot ): et typisk eksempel er å tildele denne tillatelsen til mount- kommandoen for å tillate vanlige brukere å montere filsystemer også. bosatt på flyttbare masseminner , for eksempel USB-nøkler eller CD-ROM-er . På den annen side er sikkerhetsstyringen i dette tilfellet faktisk delegert til selve programmet, og ved en feil kan den bli krenket (brukeren kan for eksempel kunne kjøre vilkårlige programmer med forhøyede rettigheter, som f.eks. for å tillate ham å krenke systemet , eller de oppnådde privilegiene kan være tilstrekkelige til at trojanske hester eller andre trusler kan infiltrere systemet).

Setgid -tillatelsen på kjørbare filer oppfører seg på samme måte som setuid , med den forskjellen at kjernen gir den nye prosessen en effektiv gruppe-ID lik den til gruppen som er tildelt filen, så prosessen har også privilegiene til den gruppen.

Av sikkerhetsgrunner er standardoppførselen til noen tekstskjell , for eksempel Bash [1] , å avbryte effekten av disse tillatelsene når de brukes på skript : når de startes som tolker tilbakestiller de automatisk den effektive verdien bruker-IDen til verdien av den virkelige bruker-IDen , og den til den effektive gruppe-ID -en til verdien av den virkelige gruppe-IDen . Ved behov er det mulig å bruke eksterne programmer, for eksempel sudo , som, når de er passende konfigurert, fortsatt lar deg oppnå ønsket effekt.

Ikke-kjørbare filer

Setgid - tillatelsessettet på ikke-kjørbare filer, på den annen side, tillater prosesser å bruke obligatorisk låsing på dem, som er en låsemekanisme som ikke kan omgås av prosesser som vanligvis tilbys av operativsystemer som stammer fra UNIX System V og også fra Linux . [2]

Atferd på kataloger

Setuid- tillatelsen har ingen effekt på kataloger , og blir effektivt ignorert.

Setgid -tillatelsen som brukes på en katalog fører til at alle nye filer og underkataloger som er opprettet i den, har gruppen til katalogen som inneholder dem som en gruppe i stedet for brukerens hoved. Nye underkataloger vil også automatisk ha setgid -tillatelsessett , som effektivt sprer det nedover hierarkiet. Det er derfor praktisk å lage kataloger beregnet på å inneholde ressurser som skal deles mellom brukere som har forskjellige hovedgrupper, men som har en ekstra gruppe til felles: i dette tilfellet er det tilstrekkelig å opprette katalogen ved å tilordne den gruppen felles for brukerne og setgid-tillatelsen , og sørg deretter for at tillatelsene til de inneholdte filene tillater tilgang til den nevnte gruppen.

Merknader

  1. ^ Bash Startup Files - Påkalt med ulik effektiv og ekte uid/gids , i Bash Reference Manual . Hentet 2008-06-16 .
  2. ^ Andy Walker, obligatorisk fillåsing for Linux-operativsystemet ( TXT ) , lxr.linux.no . Hentet 2008-06-18 .

Relaterte elementer