Podwyższony poziom dostępu dla poleceń dotnet

Najlepsze rozwiązania dotyczące tworzenia oprogramowania prowadzą deweloperów do pisania oprogramowania, które wymaga najmniejszej ilości uprawnień. Jednak niektóre oprogramowanie, takie jak narzędzia do monitorowania wydajności, wymaga uprawnień administratora ze względu na reguły systemu operacyjnego. W poniższych wskazówkach opisano obsługiwane scenariusze pisania takiego oprogramowania za pomocą platformy .NET Core.

Można uruchomić następujące polecenia z podwyższonym poziomem uprawnień:

  • dotnet tool polecenia, takie jak dotnet tool install.
  • dotnet run --no-build
  • dotnet-core-uninstall

Nie zalecamy uruchamiania innych poleceń z podwyższonym poziomem uprawnień. W szczególności nie zalecamy podniesienia uprawnień za pomocą poleceń korzystających z programu MSBuild, takich jak dotnet restore, dotnet build i dotnet run. Podstawowym problemem są problemy z zarządzaniem uprawnieniami, gdy użytkownik przechodzi tam i z powrotem między katalogiem głównym i ograniczonym kontem po wydaniu poleceń dotnet. Być może użytkownik z ograniczeniami nie ma dostępu do pliku utworzonego przez użytkownika głównego. Istnieją sposoby rozwiązania tej sytuacji, ale są one niepotrzebne, aby dostać się w pierwszej kolejności.

Polecenia można uruchamiać tak długo, jak długo nie przechodzisz między katalogiem głównym i ograniczonym kontem. Na przykład kontenery platformy Docker są domyślnie uruchamiane jako główne, więc mają tę charakterystykę.

Globalna instalacja narzędzi

Poniższe instrukcje przedstawiają zalecany sposób instalowania, uruchamiania i odinstalowywania narzędzi platformy .NET, które wymagają podniesionych uprawnień do wykonania.

Instalowanie narzędzia

Jeśli folder %ProgramFiles%\dotnet-tools już istnieje, wykonaj następujące czynności, aby sprawdzić, czy grupa "Użytkownicy" ma uprawnienia do zapisu lub modyfikowania tego katalogu:

  • Kliknij prawym przyciskiem myszy %ProgramFiles%\dotnet-tools folder i wybierz polecenie Właściwości. Zostanie otwarte okno dialogowe Wspólne właściwości .
  • Wybierz kartę Zabezpieczenia . W obszarze Nazwy grup lub użytkowników sprawdź, czy grupa "Użytkownicy" ma uprawnienia do zapisu lub modyfikowania katalogu.
  • Jeśli grupa "Użytkownicy" nie może zapisać ani zmodyfikować katalogu, użyj innej nazwy katalogu podczas instalowania narzędzi, a nie dotnet-tools.

Aby zainstalować narzędzia, uruchom następujące polecenie w wierszu polecenia z podwyższonym poziomem uprawnień. Podczas instalacji zostanie utworzony folder dotnet-tools .

dotnet tool install PACKAGEID --tool-path "%ProgramFiles%\dotnet-tools".

Uruchamianie narzędzia globalnego

Opcja 1 Użyj pełnej ścieżki z monitem z podwyższonym poziomem uprawnień:

"%ProgramFiles%\dotnet-tools\TOOLCOMMAND"

Opcja 2 . Dodaj nowo utworzony folder do %Path%. Tę operację należy wykonać tylko raz.

setx Path "%Path%;%ProgramFiles%\dotnet-tools\"

Uruchom polecenie za pomocą polecenia :

TOOLCOMMAND

Odinstalowywanie narzędzia globalnego

W wierszu polecenia z podwyższonym poziomem uprawnień wpisz następujące polecenie:

dotnet tool uninstall PACKAGEID --tool-path "%ProgramFiles%\dotnet-tools"

Narzędzia lokalne

Narzędzia lokalne są ograniczone do poszczególnych podkatalogów drzewa, na użytkownika. Po uruchomieniu z podwyższonym poziomem uprawnień narzędzia lokalne współużytkować środowisko użytkownika z ograniczeniami w środowisku z podwyższonym poziomem uprawnień. W systemach Linux i macOS spowoduje to ustawienie plików z dostępem tylko do użytkownika głównego. Jeśli użytkownik przełączy się z powrotem na konto z ograniczeniami, użytkownik nie będzie mógł już uzyskać dostępu do plików ani zapisywać ich w plikach. Dlatego instalowanie narzędzi wymagających podniesienia uprawnień, ponieważ narzędzia lokalne nie są zalecane. Zamiast tego użyj --tool-path opcji i poprzednich wytycznych dotyczących narzędzi globalnych.

Podniesienie uprawnień podczas programowania

Podczas programowania może być potrzebny podwyższony poziom dostępu do testowania aplikacji. Ten scenariusz jest typowy dla aplikacji IoT, na przykład. Zalecamy skompilowanie aplikacji bez podniesienia uprawnień, a następnie uruchomienie jej z podniesieniem uprawnień. Istnieje kilka wzorców w następujący sposób:

  • Użycie wygenerowanego pliku wykonywalnego (zapewnia najlepszą wydajność uruchamiania):

    dotnet build
    sudo ./bin/Debug/netcoreapp3.0/APPLICATIONNAME
    
  • Użyj polecenia dotnet run z flagą , —no-build aby uniknąć generowania nowych plików binarnych:

    dotnet build
    sudo dotnet run --no-build
    

Zobacz też