владелецы веток реестра

Тема в разделе "WASM.WIN32", создана пользователем Rodin, 28 янв 2009.

  1. Rodin

    Rodin New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    125
    Нужно программно сменить разрешения для ветки реестра, а потом вернуть исходные разрешения и владельца на место. Я админ, но владельцем ветки не являюсь. В разрешениях текущего владельца меня также нет.

    Казалось бы все просто
    RegOpenKeyEx + RegGetKeySecurity + RegSetKeySecurity

    Админ может сделать себя владельцем через
    RegOpenKeyEx (,,,WRITE_OWNER,);
    RegGetKeySecurity (,OWNER_SECURITY_INFORMATION,,);
    RegSetKeySecurity (,OWNER_SECURITY_INFORMATION,,);

    Но мне также нужно предварительно считать предыдущиего владельца и его разрешения. Чтоб считать инфу нужны права READ_CONTROL. А сделать RegOpenKeyEx с этим флагом может только текущий владелец, либо должны быть разрешения.
    Тупик...
     
  2. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Есть отдельный параметр на чтение разрешений
     
  3. Rodin

    Rodin New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    125
    MSDN говорит иное

    Код (Text):
    1. To read the owner, group, or discretionary access control list (DACL)
    2. from the key's security descriptor, the calling process must have been granted
    3. READ_CONTROL access when the handle was opened. To get READ_CONTROL
    4. access, the caller must be the owner of the key or the key's DACL must grant the access.