Når du kjører en kjørbar fil i Linux, kjører den vanligvis med gjeldende bruker- og gruppe-ID. Det er imidlertid tider når du trenger å kjøre den filen som en annen bruker (som root). I stedet for å bytte brukerkonto, kan du bruke setuid til å kjøre den kjørbare filen som fileier og ikke den nåværende brukeren. Her vil vi forklare hvordan setuid fungerer og hvordan det lar brukerne kjøre kjørbare filer / binære filer med eskalerte privilegier.
Hvordan fungerer setuid?
Setuid står for SETT bruker-ID ved utførelse. La oss si at vi har en kjørbar kalt “identitet” opprettet av rotbrukeren. Når du kjører den, kjører den med bruker-ID, gruppe-ID og brukerrettigheter. Hvis setuid-biten er satt til “identitets” -filen, vil den kjøres som rotbruker og dens brukerrettigheter når du kjører den.
Som en illustrasjon kan vi først sjekke eierskapet til “identitetsfilen” og verifisere at den eies av rotbrukeren. Tillatelsesstrengen viser også de kjørbare (x) bitene som er satt for brukeren, gruppen og andre.

Bruker “john1” kjører “identitets” -filen, som blir en prosess ved utførelse. Som vist i prosesslisten opprettes og kjøres prosessen under “john1” brukernavn og bruker-ID.

Deretter setter vi som rotbruker setuid-biten til “identitetsfilen”:
chmod u+s /usr/bin/identity
“U” betegner at setuid bit (+ s) bare må angis for brukeren.

For eieren, i den kjørbare delen av tillatelsesstrengen, kan vi se at “x” er erstattet med “s”. Hver gang du støter på “s” for en kjørbar, betyr det at setuid-biten er satt på den.
Den numeriske varianten av chmod
kommandoen kan også brukes som vist nedenfor.
chmod 4755 /usr/bin/identity
Tillegg av 4 i den numeriske tillatelsesstrengen angir inkludering av setuid-biten.
Følgende er hva som skjer når “john1” kjører “identitets” -filen på nytt. Ser vi på listen over prosesser som kjører, kan vi nå se at prosessen er opprettet og kjørt av “root” -brukeren i stedet for “john1.”

Viktig bruk av setuid-biten
Mesteparten av tiden vil du høre fra eksperter at du ikke bør kjøre applikasjoner som rotbruker. Imidlertid er det tilfeller der visse filer må kjøres med rottillatelse. For eksempel passwd
verktøy som installeres som standard på Linux-systemer har setuid-biten satt på den.
Årsaken er enkel: Passordinformasjon for en bruker lagres i “/ etc / passwd” og “/ etc / shadow” filer, som bare kan endres av “root”. Når “john1” prøver å endre passordet for seg selv, må han ha tillatelse til å endre informasjon i de to nevnte filene. Å ha setuid-biten satt på passwd
gjør det mulig for «john1» å midlertidig ha root-tillatelser til å endre brukerpassordet og også oppdatere informasjon i de to filene.
Setuid sikkerhetsrisiko
Hvis du ikke er forsiktig, kan en angriper utnytte setuid-binærfiler for å kontrollere systemet ditt. Brukere burde normalt ikke ha installert setuid-programmer, spesielt setuid til andre brukere enn seg selv. Viktigst, du bør ikke ha noen setuid-aktivert binær for rotbrukeren i hjemmemappen din. Dette er vanligvis trojanske hester eller skadelig programvare.
Konklusjon
Setuid kan bare settes på kjørbare filer. Likeledes, den setgid
bit kan også angis, som gjør at alle medlemmer i en gruppe kan kjøre en kjørbar med eiertillatelser.
Legg merke til det setuid
og setgid
bits er sikkerhetssensitive og må kun brukes av kvalifiserte systemadministratorer.
Les neste:
- Hvordan bruke Sticky Bit til å administrere filer i delte kataloger i Linux
- Hvordan gjøre stavekontroller i Linux-terminalen
- Ved hjelp av finn, finn, hvilken og hvor kommandoer for å søke etter filer i Linux