Mange systemer styres af en rodbruger eller en superbruger. Subsystem for UNIX-based Applications (SUA) genkender ikke en rodbruger. Da POSIX-standarden (Portable Operating System Interface) blev udviklet, blev begrebet rodbruger betragtet som et administrativt problem. POSIX-standarden definerer de relevante privilegier for visse handlinger i stedet for en rodbruger.
I dette emne
Subsystem for UNIX-based Applications og id'er
Konfigurationsovervejelser i forbindelse med setuid i Subsystem for UNIX-based Applications
setuid og setgid
Mekanismerne setuid og setgid gør det muligt for et program at anvende andre aspekter af en sikkerhedskonto end brugerens under kørslen. De gør det muligt for programmet at skifte mellem den igangsættende brugers aspekter og en anden sikkerhedskontos aspekter.
Relevante rettigheder adskiller sig fra dette. Mens mekanismerne setuid og setgid gør det muligt for et program at styre svaret på spørgsmålet: "Hvem er du"?, besvarer relevante rettigheder spørgsmålet: "Hvad kan du gøre"?
Undersystem til UNIX-baserede programmer og identiteter
I typiske UNIX-miljøer er der nøjagtig én bruger, som får tildelt alle rettigheder. Den pågældende bruger, typisk kaldet root, har uid == 0. I Subsystem for UNIX-based Applications tildeles alle understøttede rettigheder i et givet system til brugere, der er medlem af gruppen Administratorer eller gruppen Domæneadministratorer i det pågældende system. Du behøver ikke at logge på som administrator. Enhver bruger, der er medlem af gruppen Administratorer eller gruppen Domæneadministratorer, har root-privilegier. Ikke alle rettigheder, der er defineret i POSIX eller UNIX, er tilgængelige i SUA, hvilket vil sige, at visse rettigheder ikke tildeles til alle brugere.
Der kræves normalt relevante rettigheder til en række forskellige handlinger. Disse omfatter oprettelse af adgang til filsystemet, afsendelse af signaler til andre processer (processtyring) eller ændring af det gældende UID (User Identifier) eller GID (Group Identifier) for en proces, hvis processens mulighed for at udføre bestemte handlinger skal ændres.
I henhold til POSIX-standarden har en fil tilladelser, der omfatter bit til angivelse af et UID (setuid) og et GID (setgid). Hvis den ene eller begge bit er angivet for en fil, og en proces kører den pågældende fil, får processen filens UID eller GID. Når denne mekanisme bruges med forsigtighed, giver den en bruger uden rettigheder mulighed for at køre programmer, der kører med rettigheder på et højere niveau, som er tildelt filens ejer eller gruppe. Når den bruges forkert, kan den imidlertid udgøre en sikkerhedsrisiko ved at gøre det muligt for brugere uden rettigheder at udføre handlinger, der kun burde udføres af en administrator. Derfor understøtter SUA som standard ikke denne mekanisme. Hvis du forsøger at køre en fil, hvor bitten setuid eller setgid er angivet, køres filen ikke i SUA (Undersystem til UNIX-baserede programmer), og fejlkoden ENOSETUID returneres.
Konfigurationsovervejelser i forbindelse med setuid i Undersystem til UNIX-baserede programmer
Hvis du er afhængig af et program, der kræver POSIX-standardfunktionsmåden, kan du konfigurere SUA (Undersystem til UNIX-baserede programmer) til at køre filer, hvor bitten setuid eller setgid er angivet. Hvis SUA (Undersystem til UNIX-baserede programmer) er konfigureret på denne måde, oprettes der lokale sikkerhedstokens for processen, hvor filens ejer eller gruppe får rettighederne tildelt, når en proces kører en fil, hvor bitten setuid eller setgid er angivet. Da tokens er lokale, genkendes de ikke af andre computere på netværket. Det betyder, at selvom filen f.eks. ejes af et medlem af gruppen Domæneadministratorer, har processen ikke sikker adgang til andre computere i domænet via Microsoft® Windows®-netværk. I stedet er rettighederne kun gældende på den computer, hvor processen kører.
En proces kører f.eks. en programfil med bitten setuid angivet, som er ejet af et medlem af gruppen Domæneadministratorer. Hvis det pågældende program forsøger at ændre en domænebrugers adgangskode, ændres den ikke, fordi processens sikkerhedstokens er lokale og derfor ikke genkendes af andre systemer i domænet. Hvis programmet imidlertid forsøger at ændre en lokal brugers adgangskode, kan det godt lade sig gøre, fordi filens ejer er medlem af gruppen Domæneadministratorer, der normalt hører ind under gruppen Administratorer på den lokale computer. Oplysninger om, hvordan SUA (Undersystem til UNIX-baserede programmer) konfigureres til at køre filer med bitten setuid eller setgid angivet, finder du i de Hjælp-filer, der følger med overførselspakken Utilities and Software Development Kit (SDK) til UNIX-baserede programmer.
I forbindelse med funktionerne setuid(2), setgid(2) og chroot(2) skal en proces have det gældende UID, der fører tilbage til systemkontoen, administratorkontoen for det lokale domæne eller administratorkontoen for hoveddomænet. Den lokale administratorkonto kan kun ændre UID'et eller GID'et til et andet id i det samme domæne.
I forbindelse med chown(1), chmod(1) og chgrp(1) skal en konto have Windows-rettighederne SE_BACKUP og SE_RESTORE for at udføre make-handlinger på filer, der ejes af en anden bruger eller gruppe, eller for at ændre tilladelser til en fil, der ejes af en anden bruger. Disse tilladelser tilhører normalt administrator- og backupoperatørkontoen.