På mange systemer har en rotbruker eller superbruker full kontroll over systemet. Delsystem for UNIX-baserte programmer (SUA) gjenkjenner ikke en rotbruker. Da POSIX-standarden ble utviklet, var begrepet rotbruker sett på som en administrativ sak. I stedet for rotbruker, definerer POSIX-standarden passende tilgangsrettigheter for enkelte operasjoner.
I dette emnet
Delsystem for UNIX-baserte programmer og identiteter
Oppsettskriterier for setuid i Delsystem for UNIX-baserte programmer
setuid og setgid
Under kjøring gir setuid- og setgid-mekanismene tillatelse til å ta i bruk visse aspekter av en sikkerhetskontohaver i tillegg til brukeren som kjører programmet. Med disse mekanismene kan programmet alternere disse aspektene mellom brukeren som starter programmet og en annen sikkerhetskontohaver.
Passende tilgangsrettigheter er forskjellig fra dette. Mens setuid- og setgid-mekanismene lar et program kontrollere svaret på spørsmålet: Hvem er du?, kan passende tilgangsrettigheter svare på spørsmålet: Hva kan du gjøre?
Delsystem for UNIX-baserte programmer og identiteter
I et vanlig UNIX-miljø er alle tilgangsrettigheter gitt til bare én bruker. Denne brukeren, vanligvis kalt root, har uid == 0. I Delsystem for UNIX-baserte programmet blir alle støttede tilgangsrettigheter på et system gitt til brukere som er medlemmer av enten administratorgruppen eller domeneadministratorgruppen for dette systemet. Som administrator trenger du ikke å logge på. Brukere med medlemskap i administratorgruppen eller domeneadministratorgruppen har root-tilgangsrettigheter. Ikke alle tilgangsrettigheter som defineres i POSIX eller UNIX er tilgjengelige i SUA, det vil si at det er visse tilgangsrettigheter som ikke gis til noen bruker.
Passende tilgangsrettigheter er vanligvis påkrevd for forskjellige handlinger. Disse inkluderer tilgang til filsystemet, sende signaler til andre prosesser (prosesskontroll), eller endre den effektive brukeridentifikatoren (UID) eller gruppeidentifikatoren (GID) for en prosess for å endre muligheten for denne prosessen til å utføre bestemte handlinger.
I henhold til POSIX-standarden har en fil tillatelser som inkluderer biter for å angi en UID (setuid) og en GID (setgid). Hvis én av eller begge bitene er angitt i en fil og en prosess kjører denne filen, får prosessen denne filens UID eller GID. Denne mekanismen, forutsatt at den brukes med påpasselighet, lar en bruker uten tilgangsrettigheter kjøre programmer med samme høyere tilgangsrettigheter som filens eier eller gruppe har. Hvis den imidlertid brukes feil, kan dette utgjøre en sikkerhetsrisiko, fordi brukere uten tilgangsrettigheter kan utføre handlinger som bare bør utføres av administrator. Dette er årsaken til at SUA ikke støtter denne mekanismen som standard. Hvis du i stedet prøver å kjøre en fil med setuid- eller setgid-bit, kjører ikke SUA filen, men returnerer feilkoden ENOSETUID.
Oppsettskriterier for setuid i Delsystem for UNIX-baserte programmer
Hvis du bruker et program som krever standard POSIX-virkemåte, kan du konfigurere SUA til å kjøre filer med setuid- eller setgid-bit. Når SUA er konfigurert på denne måten, opprettes det lokale sikkerhetstokener for prosessen med tilgangsrettighetene som er tilordnet filens eier eller gruppe, mens en prosess kjører en fil som har setuid- eller setgid-bit. Fordi det er lokale tokener, blir de ikke gjenkjent av andre datamaskiner på nettverket. Dette betyr at selv om filen eies av et medlem av domeneadministrasjonsgruppen, har ikke prosessen klarert tilgang gjennom Microsoft® Windows® nettverk til andre datamaskiner i domenet. Tilagangsrettighetene vil i stedet bare være effektive på datamaskinen som kjører prosessen.
En prosess kan for eksempel kjøre en programfil med sin setuid-bit og eies av et medlem av domeneadministrasjonsgruppen. Hvis dette programmet prøver å endre domenebrukerens passord, vil dette ikke lykkes fordi sikkerhetstokenene i prosessen er lokale, og blir ikke gjenkjent av andre systemer i domenet. Hvis programmet derimot prøver å endre passordet til en lokal bruker, vil dette lykkes, fordi eieren av filen er medlem av domeneadministrasjonsgruppen som vanligvis tilhører administratorgruppen for den lokale datamaskinen. Se hjelpefilene som følger med nedlastingspakken Verktøy og SDK for UNIX-baserte programmer hvis du vil ha informasjon om hvordan du konfigurerer SUA til å kjøre filer med setuid- eller setgid-bit.
For funksjonene setuid(2), setgid(2) og chroot(2) må en prosess ha gjeldende UID som går tilbake til systemkontoen, administratorkontoen for det lokale domenet eller administratorkontoen for hoveddomenet. Den lokale administratorkontoen kan bare endre UID eller GID til en annen ID i samme domene.
For chown(1), chmod(1) og chgrp(1) må en konto ha Windows-tilgangsrettighetene SE_BACKUP og SE_RESTORE for å utføre make-operasjoner på filer som eies av en annen bruker eller gruppe, eller for å endre tillatelser for en fil som eies av en annen bruker. Disse tillatelsene tilhører vanligvis administrator- og sikkerhetskopioperatørkontoene.