Безопасность и права доступа к рабочему столу

Безопасность позволяет управлять доступом к объектам рабочего стола. Дополнительные сведения о безопасности см. в разделе Модель управления доступом.

Дескриптор безопасности для классического объекта можно указать при вызове функции CreateDesktop или CreateDesktopEx. Если указать значение NULL, рабочий стол получит дескриптор безопасности по умолчанию. Списки управления доступом в дескрипторе безопасности по умолчанию для рабочего стола поступают из родительской станции окон.

Чтобы получить или задать дескриптор безопасности объекта оконной станции, вызовите функции GetSecurityInfo и SetSecurityInfo .

При вызове функции OpenDesktop или OpenInputDesktop система проверяет запрошенные права доступа по дескриптору безопасности объекта.

Допустимые права доступа для настольных объектов включают стандартные права доступа и некоторые права доступа для конкретных объектов. В следующей таблице перечислены стандартные права доступа, используемые всеми объектами.

Значение Значение
DELETE (0x00010000L) Требуется для удаления объекта.
READ_CONTROL (0x00020000L) Требуется для чтения сведений в дескрипторе безопасности для объекта, не включая сведения в saCL. Чтобы прочитать или записать saCL, необходимо запросить право доступа ACCESS_SYSTEM_SECURITY. Дополнительные сведения см. в разделе Права доступа к SACL.
SYNCHRONIZE (0x00100000L) Не поддерживается для настольных объектов.
WRITE_DAC (0x00040000L) Требуется для изменения DACL в дескрипторе безопасности для объекта .
WRITE_OWNER (0x00080000L) Требуется для изменения владельца в дескрипторе безопасности для объекта .

 

В следующей таблице перечислены права доступа для конкретных объектов.

Право доступа Описание
DESKTOP_CREATEMENU (0x0004L) Требуется для создания меню на рабочем столе.
DESKTOP_CREATEWINDOW (0x0002L) Требуется для создания окна на рабочем столе.
DESKTOP_ENUMERATE (0x0040L) Требуется для перечисления рабочего стола.
DESKTOP_HOOKCONTROL (0x0008L) Требуется для установки любого из оконных крючков.
DESKTOP_JOURNALPLAYBACK (0x0020L) Требуется для воспроизведения журнала на рабочем столе.
DESKTOP_JOURNALRECORD (0x0010L) Требуется для записи журнала на рабочем столе.
DESKTOP_READOBJECTS (0x0001L) Требуется для чтения объектов на рабочем столе.
DESKTOP_SWITCHDESKTOP (0x0100L) Требуется для активации рабочего стола с помощью функции SwitchDesktop .
DESKTOP_WRITEOBJECTS (0x0080L) Требуется для записи объектов на рабочем столе.

 

Ниже приведены общие права доступа для объекта desktop, содержащегося в интерактивной оконной станции сеанса входа пользователя.

Право доступа Описание
GENERIC_READ
DESKTOP_ENUMERATE
DESKTOP_READOBJECTS
STANDARD_RIGHTS_READ
GENERIC_WRITE
DESKTOP_CREATEMENU
DESKTOP_CREATEWINDOW
DESKTOP_HOOKCONTROL
DESKTOP_JOURNALPLAYBACK
DESKTOP_JOURNALRECORD
DESKTOP_WRITEOBJECTS
STANDARD_RIGHTS_WRITE
GENERIC_EXECUTE
DESKTOP_SWITCHDESKTOP
STANDARD_RIGHTS_EXECUTE
GENERIC_ALL
DESKTOP_CREATEMENU
DESKTOP_CREATEWINDOW
DESKTOP_ENUMERATE
DESKTOP_HOOKCONTROL
DESKTOP_JOURNALPLAYBACK
DESKTOP_JOURNALRECORD
DESKTOP_READOBJECTS
DESKTOP_SWITCHDESKTOP
DESKTOP_WRITEOBJECTS
STANDARD_RIGHTS_REQUIRED

 

Вы можете запросить право доступа ACCESS_SYSTEM_SECURITY к классическому объекту, если хотите прочитать или записать список SACL объекта. Дополнительные сведения см. в разделах Списки управления доступом (ACL) и Права доступа saCL.