Безопасность и права доступа к рабочему столу
Безопасность позволяет управлять доступом к объектам рабочего стола. Дополнительные сведения о безопасности см. в разделе Модель управления доступом.
Дескриптор безопасности для классического объекта можно указать при вызове функции 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_READOBJECTS STANDARD_RIGHTS_READ |
GENERIC_WRITE |
DESKTOP_CREATEWINDOW DESKTOP_HOOKCONTROL DESKTOP_JOURNALPLAYBACK DESKTOP_JOURNALRECORD DESKTOP_WRITEOBJECTS STANDARD_RIGHTS_WRITE |
GENERIC_EXECUTE |
STANDARD_RIGHTS_EXECUTE |
GENERIC_ALL |
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.