Aanbevolen procedures voor softwareontwikkeling helpen ontwikkelaars bij het schrijven van software waarvoor het minimale aantal bevoegdheden is vereist. Voor sommige software, zoals hulpprogramma's voor prestatiebewaking, is echter beheerdersmachtiging vereist vanwege besturingssysteemregels. In de volgende richtlijnen worden ondersteunde scenario's beschreven voor het schrijven van dergelijke software met .NET Core.
De volgende opdrachten kunnen worden uitgevoerd met verhoogde bevoegdheden:
Het is niet raadzaam om andere opdrachten uit te voeren met verhoogde bevoegdheid. In het bijzonder raden we geen uitbreiding aan met opdrachten die MSBuild gebruiken, zoals dotnet-herstel, dotnet-build en dotnet-uitvoering. Het belangrijkste probleem is problemen met machtigingsbeheer wanneer een gebruiker heen en weer overgaat tussen de hoofdmap en een beperkt account nadat dotnet-opdrachten zijn uitgegeven. Mogelijk vindt u een beperkte gebruiker die u geen toegang hebt tot het bestand dat is gebouwd door een hoofdgebruiker. Er zijn manieren om deze situatie op te lossen, maar ze zijn niet nodig om in de eerste plaats aan de slag te gaan.
U kunt opdrachten uitvoeren als root zolang u niet heen en weer gaat tussen de hoofdmap en een beperkt account. Docker-containers worden bijvoorbeeld standaard uitgevoerd als root, zodat ze dit kenmerk hebben.
Installatie van globale hulpprogramma's
De volgende instructies laten zien hoe u .NET-hulpprogramma's kunt installeren, uitvoeren en verwijderen waarvoor verhoogde machtigingen zijn vereist om uit te voeren.
Als de map %ProgramFiles%\dotnet-tools al bestaat, gaat u als volgt te werk om te controleren of de groep 'Gebruikers' gemachtigd is om die map te schrijven of te wijzigen:
Klik met de rechtermuisknop op de %ProgramFiles%\dotnet-tools map en selecteer Eigenschappen. Het dialoogvenster Algemene eigenschappen wordt geopend.
Selecteer het tabblad Beveiliging . Controleer onder Groeps- of gebruikersnamen of de groep Gebruikers machtigingen heeft om de directory te schrijven of te wijzigen.
Als de groep Gebruikers de map niet kan schrijven of wijzigen, gebruikt u een andere mapnaam bij het installeren van de hulpprogramma's in plaats van dotnet-tools.
Als u hulpprogramma's wilt installeren, voert u de volgende opdracht uit in de opdrachtprompt met verhoogde bevoegdheid. Tijdens de installatie wordt de map dotnet-tools gemaakt.
Pakketassets moeten worden geïnstalleerd op een beveiligde locatie met behulp van de --tool-path optie. Deze scheiding voorkomt het delen van een beperkte gebruikersomgeving met een verhoogde omgeving.
/usr/local/share/dotnet-tools wordt gemaakt met toestemming drwxr-xr-x. Als de map al bestaat, gebruikt u de ls -l opdracht om te controleren of de beperkte gebruiker niet gemachtigd is om de map te bewerken. Als dat het zo is, gebruikt u de sudo chmod o-w -R /usr/share/dotnet-tools opdracht om de toegang te verwijderen.
Het globale hulpprogramma uitvoeren
Optie 1 Gebruik het volledige pad met sudo:
Bash
sudo /usr/local/share/dotnet-tools/TOOLCOMMAND
Optie 2 Voeg de symboolkoppeling van het hulpprogramma toe, eenmaal per hulpmiddel:
Als u een symboolkoppeling hebt gemaakt, moet u deze ook verwijderen:
Bash
sudo rm /usr/local/bin/TOOLCOMMAND
Het algemene hulpprogramma installeren
Pakketassets moeten worden geïnstalleerd op een beveiligde locatie met behulp van de --tool-path optie. Deze scheiding voorkomt het delen van een beperkte gebruikersomgeving met een verhoogde omgeving.
/usr/local/share/dotnet-tools wordt gemaakt met toestemming drwxr-xr-x. Als de map al bestaat, gebruikt u de ls -l opdracht om te controleren of de beperkte gebruiker niet gemachtigd is om de map te bewerken. Als dat het zo is, gebruikt u de sudo chmod o-w -R /usr/share/dotnet-tools opdracht om de toegang te verwijderen.
Het globale hulpprogramma uitvoeren
Optie 1 Gebruik het volledige pad met sudo:
Bash
sudo /usr/local/share/dotnet-tools/TOOLCOMMAND
Optie 2 Voeg de symboolkoppeling van het hulpprogramma toe, eenmaal per hulpmiddel:
Als u een symboolkoppeling hebt gemaakt, moet u deze ook verwijderen:
Bash
sudo rm /usr/local/bin/TOOLCOMMAND
Lokale hulpprogramma's
Lokale hulpprogramma's hebben een bereik per submapstructuur, per gebruiker. Wanneer u verhoogde bevoegdheden uitvoert, delen lokale hulpprogramma's een beperkte gebruikersomgeving met de verhoogde omgeving. In Linux en macOS resulteert dit in bestanden die alleen toegang hebben tot de hoofdgebruiker. Als de gebruiker terugschakelt naar een beperkt account, kan de gebruiker geen toegang meer krijgen tot of schrijven naar de bestanden. Het is dus niet raadzaam om hulpprogramma's te installeren waarvoor benodigde bevoegdheden zijn vereist, omdat lokale hulpprogramma's niet worden aanbevolen. Gebruik in plaats daarvan de --tool-path optie en de vorige richtlijnen voor globale hulpprogramma's.
Uitbreiding tijdens ontwikkeling
Tijdens de ontwikkeling hebt u mogelijk verhoogde toegang nodig om uw toepassing te testen. Dit scenario is bijvoorbeeld gebruikelijk voor IoT-apps. U wordt aangeraden de toepassing zonder benodigde bevoegdheden te bouwen en deze vervolgens uit te voeren met uitbreiding. Er zijn een aantal patronen, als volgt:
Gegenereerd uitvoerbaar bestand gebruiken (dit biedt de beste opstartprestaties):
De bron voor deze inhoud vindt u op GitHub, waar u ook problemen en pull-aanvragen kunt maken en controleren. Bekijk onze gids voor inzenders voor meer informatie.
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven:
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.