Hak istimewa
Hak istimewa adalah hak akun, seperti akun pengguna atau grup, untuk melakukan berbagai operasi terkait sistem di komputer lokal, seperti mematikan sistem, memuat driver perangkat, atau mengubah waktu sistem. Hak istimewa berbeda dari hak akses dengan dua cara:
- Hak istimewa mengontrol akses ke sumber daya sistem dan tugas terkait sistem, sedangkan hak akses mengontrol akses ke objek yang dapat diamankan.
- Administrator sistem menetapkan hak istimewa untuk akun pengguna dan grup, sedangkan sistem memberikan atau menolak akses ke objek yang dapat diamankan berdasarkan hak akses yang diberikan dalam ACE di DACL objek.
Setiap sistem memiliki database akun yang menyimpan hak istimewa yang disimpan oleh akun pengguna dan grup. Saat pengguna masuk, sistem menghasilkan token akses yang berisi daftar hak istimewa pengguna, termasuk yang diberikan kepada pengguna atau ke grup tempat pengguna berada. Perhatikan bahwa hak istimewa hanya berlaku untuk komputer lokal; akun domain dapat memiliki hak istimewa yang berbeda di komputer yang berbeda.
Ketika pengguna mencoba melakukan operasi istimewa, sistem memeriksa token akses pengguna untuk menentukan apakah pengguna memegang hak istimewa yang diperlukan, dan jika demikian, sistem memeriksa apakah hak istimewa diaktifkan. Jika pengguna gagal dalam pengujian ini, sistem tidak melakukan operasi.
Untuk menentukan hak istimewa yang disimpan dalam token akses, panggil fungsiGetTokenInformation, yang juga menunjukkan hak istimewa mana yang diaktifkan. Sebagian besar hak istimewa dinonaktifkan secara default.
WINDOWS API mendefinisikan sekumpulan konstanta string, seperti SE_ASSIGNPRIMARYTOKEN_NAME, untuk mengidentifikasi berbagai hak istimewa. Konstanta ini sama pada semua sistem dan didefinisikan dalam Winnt.h. Untuk tabel hak istimewa yang ditentukan oleh Windows, lihat Konstanta Hak Istimewa. Namun, fungsi yang mendapatkan dan menyesuaikan hak istimewa dalam token akses menggunakan jenisLUID untuk mengidentifikasi hak istimewa. Nilai LUID untuk hak istimewa dapat berbeda dari satu komputer ke komputer lainnya, dan dari satu boot ke komputer lain di komputer yang sama. Untuk mendapatkan LUID saat ini yang sesuai dengan salah satu konstanta string, gunakan fungsiLookupPrivilegeValue. Gunakan fungsiLookupPrivilegeNameuntuk mengonversi LUID ke konstanta string yang sesuai.
Sistem menyediakan sekumpulan nama tampilan yang menjelaskan masing-masing hak istimewa. Ini berguna ketika Anda perlu menampilkan deskripsi hak istimewa kepada pengguna. Gunakan fungsi LookupPrivilegeDisplayName untuk mengambil string deskripsi yang sesuai dengan konstanta string untuk hak istimewa. Misalnya, pada sistem yang menggunakan bahasa Inggris AS, nama tampilan untuk hak istimewa SE_SYSTEMTIME_NAME adalah "Ubah waktu sistem".
Anda dapat menggunakan fungsiPrivilegeCheck untuk menentukan apakah token akses menyimpan serangkaian hak istimewa yang ditentukan. Ini berguna terutama untuk aplikasi server yang meniru klien.
Administrator sistem dapat menggunakan alat administratif, seperti Manajer Pengguna, untuk menambahkan atau menghapus hak istimewa untuk akun pengguna dan grup. Administrator dapat secara terprogram menggunakan fungsiOtoritas Keamanan Lokal (LSA)untuk bekerja dengan hak istimewa. Fungsi LsaAddAccountRights dan LsaRemoveAccountRights menambahkan atau menghapus hak istimewa dari akun. Fungsi LsaEnumerateAccountRights menghitung hak istimewa yang dipegang oleh akun tertentu. Fungsi LsaEnumerateAccountsWithUserRight menghitung akun yang memiliki hak istimewa tertentu.
Topik terkait