Förhöjd åtkomst för dotnet-kommandon
Metodtips för programvaruutveckling hjälper utvecklare att skriva programvara som kräver minst behörighet. Vissa program, till exempel verktyg för prestandaövervakning, kräver dock administratörsbehörighet på grund av operativsystemregler. Följande vägledning beskriver scenarier som stöds för att skriva sådan programvara med .NET Core.
Följande kommandon kan köras förhöjda:
dotnet tool
kommandon, till exempel installation av dotnet-verktyget.dotnet run --no-build
dotnet-core-uninstall
Vi rekommenderar inte att du kör andra kommandon som är upphöjda. I synnerhet rekommenderar vi inte utökade kommandon som använder MSBuild, till exempel dotnet restore, dotnet build och dotnet run. Det primära problemet är problem med behörighetshantering när en användare övergår fram och tillbaka mellan roten och ett begränsat konto efter att ha utfärdat dotnet-kommandon. Som begränsad användare kanske du inte har åtkomst till filen som skapats av en rotanvändare. Det finns sätt att lösa den här situationen, men de är onödiga att komma in i från början.
Du kan köra kommandon som rot så länge du inte övergår fram och tillbaka mellan roten och ett begränsat konto. Docker-containrar körs till exempel som rot som standard, så de har den här egenskapen.
Installation av globalt verktyg
Följande instruktioner visar det rekommenderade sättet att installera, köra och avinstallera .NET-verktyg som kräver utökade behörigheter för att köra.
Installera verktyget
Om mappen %ProgramFiles%\dotnet-tools
redan finns gör du följande för att kontrollera om gruppen "Användare" har behörighet att skriva eller ändra katalogen:
- Högerklicka på
%ProgramFiles%\dotnet-tools
mappen och välj Egenskaper. Dialogrutan Vanliga egenskaper öppnas. - Välj fliken Säkerhet . Under Grupp- eller användarnamn kontrollerar du om gruppen "Användare" har behörighet att skriva eller ändra katalogen.
- Om gruppen "Användare" inte kan skriva eller ändra katalogen använder du ett annat katalognamn när du installerar verktygen i stället för dotnet-tools.
Installera verktyg genom att köra följande kommando i upphöjd prompt. Mappen dotnet-tools skapas under installationen.
dotnet tool install PACKAGEID --tool-path "%ProgramFiles%\dotnet-tools".
Kör det globala verktyget
Alternativ 1 Använd den fullständiga sökvägen med upphöjd fråga:
"%ProgramFiles%\dotnet-tools\TOOLCOMMAND"
Alternativ 2 Lägg till den nyligen skapade mappen i %Path%
. Du behöver bara utföra den här åtgärden en gång.
setx Path "%Path%;%ProgramFiles%\dotnet-tools\"
Och kör med:
TOOLCOMMAND
Avinstallera det globala verktyget
I en upphöjd prompt skriver du följande kommando:
dotnet tool uninstall PACKAGEID --tool-path "%ProgramFiles%\dotnet-tools"
Lokala verktyg
Lokala verktyg är begränsade per underkatalogträd, per användare. När körningen är förhöjd delar lokala verktyg en begränsad användarmiljö till den upphöjda miljön. I Linux och macOS resulterar detta i att filer ställs in med åtkomst endast för rotanvändare. Om användaren växlar tillbaka till ett begränsat konto kan användaren inte längre komma åt eller skriva till filerna. Därför rekommenderas inte installation av verktyg som kräver utökade privilegier som lokala verktyg. Använd i stället alternativet --tool-path
och de tidigare riktlinjerna för globala verktyg.
Utökade privilegier under utveckling
Under utvecklingen kan du behöva förhöjd åtkomst för att testa ditt program. Det här scenariot är vanligt för till exempel IoT-appar. Vi rekommenderar att du skapar programmet utan utökade privilegier och sedan kör det med utökade privilegier. Det finns några mönster, enligt följande:
Använda genererad körbar fil (det ger bästa startprestanda):
dotnet build sudo ./bin/Debug/netcoreapp3.0/APPLICATIONNAME
Använd kommandot dotnet run med
—no-build
flaggan för att undvika att generera nya binärfiler:dotnet build sudo dotnet run --no-build