Sdílet prostřednictvím


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
    

Viz také