Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Windows-säkerhetsmodellen kan du styra åtkomsten till tjänstkontrollhanteraren (SCM) och tjänstobjekt. Följande avsnitt innehåller detaljerad information:
Åtkomsträttigheter för Service Control Manager
Följande är de specifika åtkomsträttigheterna för SCM.
Åtkomsträtt | Beskrivning |
---|---|
SC_MANAGER_ALL_ACCESS (0xF003F) | Innehåller STANDARD_RIGHTS_REQUIRED, utöver alla åtkomsträttigheter i den här tabellen. |
SC_MANAGER_CREATE_SERVICE (0x0002) | Krävs för att anropa funktionen CreateService för att skapa ett tjänstobjekt och lägga till det i databasen. |
SC_MANAGER_CONNECT (0x0001) | Krävs för att ansluta till tjänstkontrollhanteraren. |
SC_MANAGER_ENUMERATE_SERVICE (0x0004) | Krävs för att anropa funktionen EnumServicesStatus eller EnumServicesStatusEx för att visa en lista över de tjänster som finns i databasen. Krävs för att anropa funktionen NotifyServiceStatusChange för att ta emot meddelanden när någon tjänst skapas eller tas bort. |
SC_MANAGER_LOCK (0x0008) | Krävs för att anropa funktionen LockServiceDatabase för att hämta ett lås på databasen. |
SC_MANAGER_MODIFY_BOOT_CONFIG (0x0020) | Krävs för att anropa funktionen NotifyBootConfigStatus. |
SC_MANAGER_QUERY_LOCK_STATUS (0x0010) | Krävs för att anropa funktionen QueryServiceLockStatus för att hämta låsstatusinformationen för databasen. |
Följande är allmänna åtkomsträttigheter för SCM.
Åtkomsträtt | Beskrivning |
---|---|
GENERIC_READ |
SC_MANAGER_ENUMERATE_SERVICE SC_MANAGER_QUERY_LOCK_STATUS |
GENERIC_WRITE |
SC_MANAGER_CREATE_SERVICE SC_MANAGER_MODIFY_BOOT_CONFIG |
GENERIC_EXECUTE |
SC_MANAGER_CONNECT SC_MANAGER_LOCK |
GENERIC_ALL |
|
En process med rätt åtkomsträttigheter kan öppna en referens till SCM som kan användas i funktionerna OpenService, EnumServicesStatusExoch QueryServiceLockStatus. Endast processer med administratörsbehörighet kan öppna referenser till den SCM som kan användas av funktionerna CreateService och LockServiceDatabase.
Systemet skapar säkerhetsbeskrivningen för SCM. Om du vill hämta eller ange säkerhetsbeskrivningen för SCM använder du funktionerna QueryServiceObjectSecurity och SetServiceObjectSecurity med ett handtag till SCManager-objektet.
Windows Server 2003 och Windows XP: Till skillnad från de flesta andra skyddsbara objekt kan inte säkerhetsbeskrivningen för SCM ändras. Det här beteendet har ändrats från och med Windows Server 2003 med Service Pack 1 (SP1).
Följande åtkomsträttigheter beviljas.
Konto | Åtkomsträttigheter |
---|---|
Fjärranslutna autentiserade användare |
|
Lokala autentiserade användare (inklusive LocalService och NetworkService) |
SC_MANAGER_ENUMERATE_SERVICE SC_MANAGER_QUERY_LOCK_STATUS STANDARD_RIGHTS_READ |
LocalSystem |
SC_MANAGER_ENUMERATE_SERVICE SC_MANAGER_MODIFY_BOOT_CONFIG SC_MANAGER_QUERY_LOCK_STATUS STANDARD_RIGHTS_READ |
Administratörer |
|
Observera att fjärranvändare som autentiseras via nätverket men inte är interaktivt inloggade kan ansluta till SCM men inte utföra åtgärder som kräver andra åtkomsträttigheter. För att utföra dessa åtgärder måste användaren vara inloggad interaktivt eller så måste tjänsten använda något av tjänstkontona.
Windows Server 2003 och Windows XP: Fjärranslutna autentiserade användare beviljas åtkomstbehörigheterna SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, SC_MANAGER_QUERY_LOCK_STATUSoch STANDARD_RIGHTS_READ. Dessa åtkomsträttigheter begränsas enligt beskrivningen i föregående tabell från och med Windows Server 2003 med SP1
När en process använder funktionen OpenSCManager för att öppna en referens till en databas med installerade tjänster kan den begära åtkomsträttigheter. Systemet utför en säkerhetskontroll mot säkerhetsbeskrivningen för SCM innan de begärda åtkomsträttigheterna beviljas.
Åtkomsträttigheter för en tjänst
Följande är de specifika åtkomsträttigheterna för en tjänst.
Åtkomsträtt | Beskrivning |
---|---|
SERVICE_ALL_ACCESS (0xF01FF) | Innehåller STANDARD_RIGHTS_REQUIRED utöver alla åtkomsträttigheter i den här tabellen. |
SERVICE_CHANGE_CONFIG (0x0002) | Krävs för att anropa funktionen ChangeServiceConfig eller ChangeServiceConfig2 för att ändra tjänstkonfigurationen. Eftersom detta ger anroparen rätt att ändra den körbara fil som systemet kör, bör den endast beviljas administratörer. |
SERVICE_ENUMERATE_DEPENDENTS (0x0008) | Krävs för att anropa funktionen EnumDependentServices för att räkna upp alla tjänster som är beroende av tjänsten. |
SERVICE_INTERROGATE (0x0080) | Krävs för att anropa funktionen ControlService för att be tjänsten att rapportera dess status omedelbart. |
SERVICE_PAUSE_CONTINUE (0x0040) | Krävs för att anropa funktionen ControlService för att pausa eller fortsätta tjänsten. |
SERVICE_QUERY_CONFIG (0x0001) | Krävs för att anropa funktionerna QueryServiceConfig och QueryServiceConfig2 för att köra frågor mot tjänstkonfigurationen. |
SERVICE_QUERY_STATUS (0x0004) | Krävs för att anropa funktionen QueryServiceStatus eller QueryServiceStatusEx för att fråga tjänstkontrollhanteraren om tjänstens status. Krävs för att anropa funktionen NotifyServiceStatusChange för att få ett meddelande när en tjänst ändrar status. |
SERVICE_START (0x0010) | Krävs för att anropa funktionen StartService för att starta tjänsten. |
SERVICE_STOP (0x0020) | Krävs för att anropa funktionen ControlService för att stoppa tjänsten. |
SERVICE_USER_DEFINED_CONTROL(0x0100) | Krävs för att anropa funktionen ControlService för att ange en användardefinierad kontrollkod. |
Följande är standardåtkomsträttigheter för en tjänst.
Åtkomsträtt | Beskrivning |
---|---|
ACCESS_SYSTEM_SECURITY | Krävs för att anropa funktionen QueryServiceObjectSecurity eller SetServiceObjectSecurity för att få åtkomst till SACL. Det rätta sättet att få den här åtkomsten är att aktivera SE_SECURITY_NAMEbehörighet i anroparens aktuella åtkomsttoken, öppna handtaget för ACCESS_SYSTEM_SECURITY åtkomst och sedan inaktivera behörigheten. |
DELETE (0x10000) | Krävs för att anropa funktionen DeleteService för att ta bort tjänsten. |
READ_CONTROL (0x20000) | Krävs för att anropa funktionen QueryServiceObjectSecurity för att fråga säkerhetsbeskrivningen för tjänstobjektet. |
WRITE_DAC (0x40000) | Krävs för att anropa funktionen SetServiceObjectSecurity för att ändra Dacl- medlem i tjänstobjektets säkerhetsbeskrivning. |
WRITE_OWNER (0x80000) | Krävs för att anropa funktionen SetServiceObjectSecurity för att ändra Owner och Group medlemmar i tjänstobjektets säkerhetsbeskrivning. |
Följande är allmänna åtkomsträttigheter för en tjänst.
Åtkomsträtt | Beskrivning |
---|---|
GENERIC_READ |
SERVICE_QUERY_CONFIG SERVICE_QUERY_STATUS SERVICE_INTERROGATE SERVICE_ENUMERATE_DEPENDENTS |
GENERIC_WRITE |
SERVICE_CHANGE_CONFIG |
GENERIC_EXECUTE |
SERVICE_START SERVICE_STOP SERVICE_PAUSE_CONTINUE SERVICE_USER_DEFINED_CONTROL |
SCM skapar ett tjänstobjekts säkerhetsbeskrivning när tjänsten installeras av funktionen CreateService. Standardsäkerhetsbeskrivningen för ett tjänstobjekt ger följande åtkomst.
Konto | Åtkomsträttigheter |
---|---|
Fjärranslutna autentiserade användare | Beviljas inte som standard.Windows Server 2003 med SP1: SERVICE_USER_DEFINED_CONTROL Windows Server 2003 och Windows XP: Åtkomsträttigheterna för fjärranslutna autentiserade användare är desamma som för lokala autentiserade användare. |
Lokala autentiserade användare (inklusive LocalService och NetworkService) |
SERVICE_ENUMERATE_DEPENDENTS SERVICE_INTERROGATE SERVICE_QUERY_CONFIG SERVICE_QUERY_STATUS SERVICE_USER_DEFINED_CONTROL |
LocalSystem |
SERVICE_ENUMERATE_DEPENDENTS SERVICE_INTERROGATE SERVICE_PAUSE_CONTINUE SERVICE_QUERY_CONFIG SERVICE_QUERY_STATUS SERVICE_START SERVICE_STOP SERVICE_USER_DEFINED_CONTROL |
Administratörer |
READ_CONTROL SERVICE_ALL_ACCESS WRITE_DAC WRITE_OWNER |
Om du vill utföra några åtgärder måste användaren vara inloggad interaktivt eller så måste tjänsten använda något av tjänstkontona.
Om du vill hämta eller ange säkerhetsbeskrivningen för ett tjänstobjekt använder du funktionerna QueryServiceObjectSecurity och SetServiceObjectSecurity. Mer information finns i Ändra DACL för en tjänst.
När en process använder funktionen OpenService kontrollerar systemet de begärda åtkomsträttigheterna mot säkerhetsbeskrivningen för tjänstobjektet.
Att bevilja vissa åtkomsträttigheter till ej betrodda användare (till exempel SERVICE_CHANGE_CONFIG eller SERVICE_STOP) kan göra det möjligt för dem att störa körningen av din tjänst och eventuellt tillåta dem att köra program under LocalSystem-kontot.
När Funktionen EnumServicesStatusEx anropas, utelämnas tjänsten tyst från listan över tjänster som returneras till klienten om anroparen inte har SERVICE_QUERY_STATUS åtkomstbehörighet till en tjänst.