Bagikan melalui


Fungsi SetServiceObjectSecurity (winsvc.h)

[SetServiceObjectSecurity tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini dapat diubah atau tidak tersedia dalam versi berikutnya. Sebagai gantinya, gunakan fungsi SetNamedSecurityInfo .]

Fungsi SetServiceObjectSecurity mengatur deskriptor keamanan objek layanan.

Sintaks

BOOL SetServiceObjectSecurity(
  [in] SC_HANDLE            hService,
  [in] SECURITY_INFORMATION dwSecurityInformation,
  [in] PSECURITY_DESCRIPTOR lpSecurityDescriptor
);

Parameter

[in] hService

Handel ke layanan. Handel ini dikembalikan oleh fungsi OpenService atau CreateService . Akses yang diperlukan untuk handel ini tergantung pada informasi keamanan yang ditentukan dalam parameter dwSecurityInformation .

[in] dwSecurityInformation

Menentukan komponen deskriptor keamanan yang akan diatur. Parameter ini bisa menjadi kombinasi dari nilai berikut. Perhatikan bahwa bendera yang tidak ditangani oleh SetServiceObjectSecurity akan diabaikan secara diam-diam.

Nilai Makna
DACL_SECURITY_INFORMATION
Mengatur daftar kontrol akses diskresi (DACL) objek. Handel yang ditentukan oleh hService harus memiliki akses WRITE_DAC, atau proses panggilan harus menjadi pemilik objek.
GROUP_SECURITY_INFORMATION
Mengatur pengidentifikasi keamanan grup utama (SID) objek. Handel yang ditentukan oleh hService harus memiliki akses WRITE_OWNER, atau proses panggilan harus menjadi pemilik objek.
OWNER_SECURITY_INFORMATION
Mengatur SID pemilik objek. Handel yang ditentukan oleh hService harus memiliki akses WRITE_OWNER, atau proses panggilan harus menjadi pemilik objek atau mengaktifkan hak istimewa SE_TAKE_OWNERSHIP_NAME.
SACL_SECURITY_INFORMATION
Mengatur daftar kontrol akses sistem (SACL) objek. Handel yang ditentukan oleh hService harus memiliki akses ACCESS_SYSTEM_SECURITY.

Untuk mendapatkan akses ACCESS_SYSTEM_SECURITY

  1. Aktifkan hak istimewa SE_SECURITY_NAME dalam token akses penelepon saat ini.
  2. Buka handel untuk akses ACCESS_SYSTEM_SECURITY.
  3. Nonaktifkan hak istimewa.

[in] lpSecurityDescriptor

Penunjuk ke struktur SECURITY_DESCRIPTOR yang berisi informasi keamanan baru.

Nilai kembali

Jika fungsi berhasil, fungsi mengembalikan bukan nol.

Jika fungsi gagal, fungsi akan mengembalikan nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Kode kesalahan berikut dapat diatur oleh manajer kontrol layanan. Kode kesalahan lainnya dapat diatur oleh fungsi registri yang dipanggil oleh manajer kontrol layanan.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Handel yang ditentukan tidak dibuka dengan akses yang diperlukan, atau proses panggilan bukan pemilik objek.
ERROR_INVALID_HANDLE
Handel yang ditentukan tidak valid.
ERROR_INVALID_PARAMETER
Informasi keamanan atau deskriptor keamanan yang ditentukan tidak valid.
ERROR_SERVICE_MARKED_FOR_DELETE
Layanan yang ditentukan telah ditandai untuk penghapusan.

Keterangan

Fungsi SetServiceObjectSecurity menetapkan bagian yang ditentukan dari deskriptor keamanan objek layanan berdasarkan informasi yang ditentukan dalam buffer lpSecurityDescriptor . Fungsi ini menggantikan salah satu atau semua informasi keamanan yang terkait dengan objek layanan, sesuai dengan bendera yang diatur dalam parameter dwSecurityInformation dan tunduk pada hak akses proses panggilan.

Saat layanan dibuat, manajer kontrol layanan menetapkan pendeskripsi keamanan default ke objek layanan. Untuk mengambil salinan deskriptor keamanan untuk objek layanan, panggil fungsi QueryServiceObjectSecurity . Untuk deskripsi pendeskripsi keamanan default untuk objek layanan, lihat Keamanan Layanan dan Hak Akses.

Perhatikan bahwa memberikan akses tertentu ke pengguna yang tidak tepercaya (seperti SERVICE_CHANGE_CONFIG atau SERVICE_STOP) dapat memungkinkan mereka untuk mengganggu eksekusi layanan Anda dan mungkin memungkinkan mereka untuk menjalankan aplikasi di bawah akun LocalSystem.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header winsvc.h (termasuk Windows.h)
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

CreateService

Access Control tingkat rendah

Fungsi Access Control tingkat rendah

OpenService

QueryServiceObjectSecurity

SECURITY_DESCRIPTOR