Keamanan Objek Pekerjaan dan Hak Akses

Model keamanan Microsoft Windows memungkinkan Anda mengontrol akses ke objek pekerjaan. Untuk informasi selengkapnya tentang keamanan, lihat Model Kontrol Akses.

Anda dapat menentukan deskriptor keamanan untuk objek pekerjaan saat Anda memanggil fungsi CreateJobObject . Jika Anda menentukan NULL, objek pekerjaan mendapatkan pendeskripsi keamanan default. ACL dalam deskriptor keamanan default untuk objek pekerjaan berasal dari token utama atau peniruan dari pembuat.

Untuk mendapatkan atau mengatur deskriptor keamanan untuk objek pekerjaan, panggil fungsi GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, atau SetSecurityInfo .

Hak akses yang valid untuk objek pekerjaan mencakup hak akses standar dan beberapa hak akses khusus pekerjaan. Tabel berikut mencantumkan hak akses standar yang digunakan oleh semua objek.

Nilai Makna
HAPUS (0x00010000L) Diperlukan untuk menghapus objek.
READ_CONTROL (0x00020000L) Diperlukan untuk membaca informasi dalam deskriptor keamanan untuk objek , tidak termasuk informasi dalam SACL. Untuk membaca atau menulis SACL, Anda harus meminta hak akses ACCESS_SYSTEM_SECURITY . Untuk informasi selengkapnya, lihat Hak Akses SACL.
SINKRONKAN (0x00100000L) Hak untuk menggunakan objek untuk sinkronisasi. Ini memungkinkan utas untuk menunggu hingga objek dalam status disinyalkan.
WRITE_DAC (0x00040000L) Diperlukan untuk mengubah DACL di deskriptor keamanan untuk objek .
WRITE_OWNER (0x00080000L) Diperlukan untuk mengubah pemilik dalam deskriptor keamanan untuk objek.

 

Tabel berikut mencantumkan hak akses khusus pekerjaan.

Nilai Makna
JOB_OBJECT_ALL_ACCESS (0x1F001F) Menggabungkan semua hak akses objek pekerjaan yang valid.
JOB_OBJECT_ASSIGN_PROCESS (0x0001) Diperlukan untuk memanggil fungsi AssignProcessToJobObject untuk menetapkan proses ke objek pekerjaan.
JOB_OBJECT_QUERY (0x0004) Diperlukan untuk mengambil informasi tertentu tentang objek pekerjaan, seperti atribut dan informasi akuntansi (lihat QueryInformationJobObject dan IsProcessInJob).
JOB_OBJECT_SET_ATTRIBUTES (0x0002) Diperlukan untuk memanggil fungsi SetInformationJobObject untuk mengatur atribut objek pekerjaan.
JOB_OBJECT_SET_SECURITY_ATTRIBUTES (0x0010) Bendera ini tidak didukung. Anda harus menetapkan batasan keamanan satu per satu untuk setiap proses yang terkait dengan objek pekerjaan. Windows Server 2003 dan Windows XP: Diperlukan untuk memanggil fungsi SetInformationJobObject dengan kelas informasi JobObjectSecurityLimitInformation untuk mengatur batasan keamanan untuk proses yang terkait dengan objek pekerjaan. Dukungan untuk bendera ini dihapus di Windows Vista dan Windows Server 2008.
JOB_OBJECT_TERMINATE (0x0008) Diperlukan untuk memanggil fungsi TerminateJobObject untuk mengakhiri semua proses dalam objek pekerjaan.

 

Handel yang dikembalikan oleh CreateJobObject memiliki akses JOB_OBJECT_ALL_ACCESS ke objek pekerjaan. Saat Anda memanggil fungsi OpenJobObject , sistem memeriksa hak akses yang diminta terhadap pendeskripsi keamanan objek. Jika objek pekerjaan berada dalam hierarki pekerjaan berlapis, penelepon dengan akses ke objek pekerjaan secara implisit memiliki akses ke semua pekerjaan turunannya dalam hierarki.

Anda dapat meminta hak akses ACCESS_SYSTEM_SECURITY ke objek pekerjaan jika Anda ingin membaca atau menulis SACL objek. Untuk informasi selengkapnya, lihat Daftar Kontrol Akses (ACL) dan Hak Akses SACL.

Anda harus mengatur batasan keamanan satu per satu untuk setiap proses yang terkait dengan objek pekerjaan, daripada mengaturnya untuk objek pekerjaan itu sendiri. Untuk informasi, lihat Keamanan Proses dan Hak Akses.

Windows Server 2003 dan Windows XP: Anda dapat menggunakan fungsi SetInformationJobObject untuk mengatur batasan keamanan untuk objek pekerjaan. Kapabilitas ini dihapus di Windows Vista dan Windows Server 2008.