Přístup se zvýšenými oprávněními pro příkazy dotnet
Osvědčené postupy vývoje softwaru vedou vývojáře k psaní softwaru, který vyžaduje nejnižší úroveň oprávnění. Některý software, například nástroje pro monitorování výkonu, ale kvůli pravidlu operačního systému vyžaduje oprávnění správce. Následující doprovodné materiály popisují podporované scénáře pro psaní takového softwaru pomocí .NET Core.
Můžete spustit následující příkazy se zvýšenými oprávněními:
dotnet tool
příkazy, například dotnet tool install.dotnet run --no-build
dotnet-core-uninstall
Nedoporučujeme spouštět další příkazy se zvýšenými oprávněními. Konkrétně nedoporučujeme zvýšení oprávnění pomocí příkazů, které používají MSBuild, jako je dotnet restore, dotnet build a dotnet run. Primárním problémem je problémy se správou oprávnění, když uživatel po vydání příkazů dotnet přechází mezi kořenem a omezeným účtem. Jako omezený uživatel můžete najít, že nemáte přístup k souboru vytvořenému uživatelem root. Existují způsoby, jak tuto situaci vyřešit, ale nejsou nutné se dostat na první místo.
Příkazy můžete spouštět tak dlouho, dokud nepřejdete mezi kořenem a omezeným účtem. Kontejnery Dockeru se například ve výchozím nastavení spouštějí jako kořen, takže mají tuto vlastnost.
Globální instalace nástrojů
Následující pokyny ukazují doporučený způsob instalace, spuštění a odinstalace nástrojů .NET, které ke spuštění vyžadují zvýšená oprávnění.
Instalace nástroje
Pokud složka %ProgramFiles%\dotnet-tools
již existuje, zkontrolujte, jestli má skupina Users oprávnění k zápisu nebo úpravě tohoto adresáře:
- Klikněte pravým tlačítkem na
%ProgramFiles%\dotnet-tools
složku a vyberte Vlastnosti. Otevře se dialogové okno Společné vlastnosti . - Vyberte kartu Zabezpečení. V části Skupina nebo uživatelská jména zkontrolujte, jestli má skupina Users oprávnění k zápisu nebo úpravě adresáře.
- Pokud skupina Users nemůže zapisovat nebo upravovat adresář, použijte při instalaci nástrojů jiný název adresáře než nástroje dotnet-tools.
Pokud chcete nainstalovat nástroje, spusťte na příkazovém řádku se zvýšenými oprávněními následující příkaz. Během instalace vytvoří složku dotnet-tools .
dotnet tool install PACKAGEID --tool-path "%ProgramFiles%\dotnet-tools".
Spuštění globálního nástroje
Možnost 1 : Použijte úplnou cestu s výzvou se zvýšenými oprávněními:
"%ProgramFiles%\dotnet-tools\TOOLCOMMAND"
Možnost 2 Přidejte nově vytvořenou složku do %Path%
složky . Tuto operaci stačí provést jenom jednou.
setx Path "%Path%;%ProgramFiles%\dotnet-tools\"
A spusťte s:
TOOLCOMMAND
Odinstalace globálního nástroje
Do příkazového řádku se zvýšenými oprávněními zadejte následující příkaz:
dotnet tool uninstall PACKAGEID --tool-path "%ProgramFiles%\dotnet-tools"
Místní nástroje
Místní nástroje jsou vymezeny na strom podadresáře na uživatele. Při spuštění se zvýšenými oprávněními sdílejí místní nástroje omezené uživatelské prostředí se zvýšenými oprávněními. V Linuxu a macOS to vede k nastavení souborů s přístupem jen pro uživatele root. Pokud uživatel přepne zpět na omezený účet, uživatel už nebude mít přístup k souborům ani k němu zapisovat. Instalace nástrojů, které vyžadují zvýšení oprávnění jako místní nástroje, se proto nedoporučuje. Místo toho použijte --tool-path
možnost a předchozí pokyny pro globální nástroje.
Zvýšení oprávnění během vývoje
Během vývoje možná budete potřebovat přístup se zvýšenými oprávněními k otestování aplikace. Tento scénář je běžný například pro aplikace IoT. Doporučujeme sestavit aplikaci bez zvýšení oprávnění a pak ji spustit se zvýšením oprávnění. Existuje několik vzorů:
Použití vygenerovaného spustitelného souboru (poskytuje nejlepší výkon při spuštění):
dotnet build sudo ./bin/Debug/netcoreapp3.0/APPLICATIONNAME
Pomocí příkazu dotnet run s příznakem
—no-build
se vyhnete generování nových binárních souborů:dotnet build sudo dotnet run --no-build