Dela via


Sudo för Windows

Sudo för Windows är ett nytt sätt för användare att köra förhöjda kommandon (som administratör) direkt från en ickeförhöjd konsolsession på Windows.

Läs meddelandet, som innehåller en demovideo och djupdykning i hur Sudo för Windows fungerar.

Förutsättningar

Kommandot Sudo för Windows är tillgängligt i Windows 11, version 24H2 eller senare. (Sök efter Windows-uppdateringar).

Anmärkning

Sudo för Windows är ännu inte tillgängligt för Windows 10, men kan finnas i framtiden.

Så här aktiverar du Sudo för Windows

Om du vill aktivera Sudo för Windows öppnar du Settings > System > For Developers och ställer in Aktivera sudo till .

Aktivera Sudo

Varning

Sudo för Windows kan användas som en potentiell eskalering av privilegierade vektorer när det är aktiverat i vissa konfigurationer. Du bör vara medveten om säkerhetsöverväganden när du aktiverar sudo-kommandot på datorn.

Så här konfigurerar du Sudo för Windows

Sudo för Windows stöder för närvarande tre olika konfigurationsalternativ. Konfigurationen kan ställas in från Settings > For Developers-menyn eller programmatiskt med hjälp av kommandoraden. Konfigurationsalternativen omfattar:

  • I ett nytt fönster (forceNewWindow): Konfigurationsalternativet forceNewWindow är standardkonfigurationsalternativet för Sudo för Windows. Använd sudo i den här konfigurationen för att köra kommandot i ett nytt fönster. Detta liknar beteendet för kommandot runas /user:admin.

  • Indata stängdes (disableInput): Konfigurationsalternativet disableInput kommer att köra den förhöjda processen i det aktuella fönstret, men med handtaget för indata stängt. Det innebär att den upphöjda processen inte kommer att kunna ta emot indata från det aktuella konsolfönstret. Detta är användbart för scenarier där du vill köra ett kommando som administratör, men inte vill tillåta att kommandot tar emot indata från det aktuella konsolfönstret. Det här konfigurationsalternativet ger en del av bekvämligheten med konfigurationsalternativet inline samtidigt som vissa av de associerade säkerhetsriskernaminimeras.

  • Infogad (normal): Konfigurationsalternativet normal liknar mest hur sudo fungerar på andra operativsystem. Den här konfigurationen kör den förhöjda processen i det aktuella fönstret och processen kan ta emot indata från den aktuella konsolsessionen. Detta är användbart för scenarier där du vill köra ett kommando som administratör och vill tillåta att kommandot tar emot indata från det aktuella konsolfönstret. Det här konfigurationsalternativet ger mest bekvämlighet, men du bör bara välja det här alternativet om du är bekant med de associerade säkerhetsrisker.

Du kan välja bland dessa konfigurationer från menyn Settings > For Developers eller ändra konfigurationen programmatiskt på en upphöjd kommandorad (administratörskonsolen) med hjälp av:

  • sudo config --enable <configuration_option>

Uppdatera <configuration_option> till antingen forceNewWindow, disableInputeller normal.

Så här använder du Sudo för Windows

Om du vill använda Sudo för Windows, lägg bara till sudo före kommandot som du vill köra som administratör. Om du till exempel vill köra netstat -ab som administratör kör du sudo netstat -ab i konsolfönstret.

Vanliga utvecklarscenarier

Här följer några vanliga scenarier där utvecklare kan använda sudo:

  • Redigera systemfiler: sudo notepad C:\Windows\System32\drivers\etc\hosts
  • Installera paket globalt: sudo npm install -g package-name
  • Kör administrativa verktyg: sudo diskpart

Anmärkning

För utvecklingsarbete som involverar systemkataloger som C:\Windows\kan du överväga att använda utvecklingsmiljöer eller alternativa metoder när det är möjligt. Sudo bör användas omdömesgillt och endast när utökade behörigheter verkligen är nödvändiga.

Eftersom sudo höjer målprocessen så att den körs med behörighet på administratörsnivå öppnas en uppmaning där du uppmanas att kontrollera att du vill fortsätta.

Säkerhetshänsyn

Det finns risker med att köra sudo i konfigurationerna Input closed (disableInput) eller Inline (normal). Det är möjligt för skadliga processer att försöka styra den förhöjda processen med hjälp av anslutningen som upprättas av den icke-förhöjda sudo.exe-processen och den förhöjda sudo.exe-processen.

Konfigurationsalternativet disableInput minskar risken genom att stänga indatahandtaget. Att koppla bort indatahandtaget från det aktuella konsolfönstret innebär att processer som inte är upphöjda inte kan skicka indata till den med höga privilegier.

Konfigurationsalternativet inline kör den förhöjda processen i det aktuella fönstret och processen kan ta emot indata från den aktuella konsolsessionen. En icke-relevant process kan skicka indata till den upphöjda processen i samma konsolfönster eller hämta information från utdata i det aktuella fönstret i den här konfigurationen.

Vanliga frågor

Hur skiljer sig Sudo för Windows från det befintliga kommandot runas?

Kommandot sudo erbjuder ett sätt att snabbt höja ett kommando som administratör från din aktuella obelevade kommandoradskontext och är bekant för vissa användare som kommer från andra operativsystem. Kommandot runas erbjuder ett sätt att köra program som alla användare, inklusive administratör om du väljer det. Vid den här tidpunkten stöder kommandot sudo i Windows inte att köra program som andra användare. Andra viktiga skillnader mellan sudo och runas är:

  • runas gör att du kan köra program som andra användare, inklusive men inte begränsat till som administratör. Den här funktionen finns i översikten för sudo-kommandot, men finns ännu inte.

  • sudo kan du snabbt höja en process (som administratör):

    • Du kan välja att göra det i ett nytt fönster, som liknar det runas administratörsflödet.
    • Du kan välja att ansluta den upphöjda processen till det aktuella konsolfönstret med konfigurationsalternativen disableInput och normal. Detta stöds inte med runas.
  • runas kan fråga användarna om ett lösenord på kommandoraden.

  • sudo kan bara utökas via UAC-säkerhetsfunktionen (User Account Control) som är utformad för att skydda operativsystemet från obehöriga ändringar med hjälp av verifieringsprompten.

Du bör överväga ditt specifika användningsfall och planera att använda det kommando som bäst uppfyller dina behov. Du bör också överväga säkerhetskonsekvenserna av att köra sudo i lägena disableInput och normal. Standardalternativet forceNewWindow konfiguration rekommenderas om du inte är bekant och bekväm med de risker som är kopplade till de andra sudo konfigurationerna.

Sudo för Windows-lagringsplats med öppen källkod

Sudo för Windows är öppen källkod och välkomnar dina bidrag och feedback. Du hittar källkoden för Sudo för Windows på GitHub.

Ytterligare funktioner

Om du letar efter ytterligare funktioner som Sudo för Windows inte tillhandahåller kan du kolla in gsudo by Gerardo Grignoli som har ett antal ytterligare funktioner och konfigurationsalternativ eller kolla in andra lösningar från communityn.