Akses tingkat tinggi untuk perintah dotnet

Praktik terbaik pengembangan perangkat lunak memandu pengembang untuk menulis perangkat lunak yang membutuhkan hak istimewa paling sedikit. Namun, beberapa perangkat lunak, seperti alat pemantauan performa, memerlukan izin admin karena aturan sistem operasi. Panduan berikut menjelaskan skenario yang didukung untuk menulis perangkat lunak tersebut dengan .NET Core.

Perintah berikut dapat dijalankan dengan hak akses lebih tinggi:

  • dotnet tool perintah, seperti dotnet tool install.
  • dotnet run --no-build
  • dotnet-core-uninstall

Kami tidak menyarankan untuk menjalankan perintah lain yang ditingkatkan. Secara khusus, kami tidak merekomendasikan peningkatan hak akses dengan perintah yang menggunakan MSBuild, seperti dotnet restore, dotnet build, dan dotnet run. Masalah utama adalah masalah manajemen izin saat pengguna beralih bolak-balik antara root dan akun terbatas setelah mengeluarkan perintah dotnet. Anda mungkin menemukan bahwa Anda, sebagai pengguna terbatas, tidak memiliki akses ke file yang dibuat oleh pengguna root. Ada cara untuk mengatasi situasi ini, tetapi sebaiknya tidak perlu masuk ke situasi tersebut dari awal.

Anda dapat menjalankan perintah sebagai root selama Anda tidak beralih bolak-balik antara root dan akun terbatas. Misalnya, kontainer Docker berjalan sebagai root secara default, sehingga mereka memiliki karakteristik ini.

Penginstalan alat global

Instruksi berikut menunjukkan cara yang disarankan untuk menginstal, menjalankan, dan menghapus instalan alat .NET yang memerlukan izin yang ditinggikan untuk dijalankan.

Pasang alat

Jika folder %ProgramFiles%\dotnet-tools sudah ada, lakukan hal berikut untuk memeriksa apakah grup "Pengguna" memiliki izin untuk menulis atau mengubah direktori tersebut:

  • %ProgramFiles%\dotnet-tools Klik kanan folder dan pilih Properti. Kotak dialog Properti Umum terbuka.
  • Pilih tab Keamanan . Di bawah Nama grup atau pengguna, periksa apakah grup "Pengguna" memiliki izin untuk menulis atau mengubah direktori.
  • Jika grup "Pengguna" tidak dapat menulis atau mengubah direktori, gunakan nama direktori yang berbeda saat menginstal alat daripada dotnet-tools.

Untuk menginstal alat, jalankan perintah berikut dalam prompt yang ditingkatkan. Ini akan membuat folder dotnet-tools selama penginstalan.

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

Jalankan alat global

Opsi 1 Gunakan jalur lengkap dengan prompt yang ditingkatkan:

"%ProgramFiles%\dotnet-tools\TOOLCOMMAND"

Opsi 2 Tambahkan folder yang baru dibuat ke %Path%. Anda hanya perlu melakukan operasi ini sekali.

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

Dan jalankan dengan:

TOOLCOMMAND

Menghapus instalan alat global

Dalam prompt yang ditingkatkan, ketik perintah berikut:

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

Alat lokal

Alat lokal dilingkup per pohon subdirektori, per pengguna. Saat dijalankan dengan hak akses tinggi, alat lokal beroperasi dalam lingkungan pengguna yang dibatasi dengan lingkungan yang ditingkatkan. Di Linux dan macOS, ini menghasilkan file yang diatur dengan akses khusus pengguna root. Jika pengguna beralih kembali ke akun terbatas, pengguna tidak dapat lagi mengakses atau menulis ke file. Jadi, menginstal alat yang memerlukan elevasi sebagai alat lokal tidak disarankan. Sebagai gantinya, gunakan opsi --tool-path dan panduan sebelumnya untuk alat-alat global.

Elevasi selama pengembangan

Selama pengembangan, Anda mungkin memerlukan akses yang ditingkatkan untuk menguji aplikasi Anda. Skenario ini umum untuk aplikasi IoT, misalnya. Kami menyarankan agar Anda membangun aplikasi tanpa elevasi lalu menjalankannya dengan elevasi. Ada beberapa pola, sebagai berikut:

  • Menggunakan file executable yang telah dihasilkan (memberikan performa memulai terbaik).

    dotnet build
    sudo ./bin/Debug/netcoreapp3.0/APPLICATIONNAME
    
  • Menggunakan perintah dotnet run dengan flag —no-build untuk menghindari pembuatan biner baru:

    dotnet build
    sudo dotnet run --no-build
    

Lihat juga