Создание папки с самым сердитым ACL

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by lukmus, 5 Jan 2010.

  1. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    366
    Likes Received:
    115
    Reputations:
    23
    этот код создает папку C:\DACL и формирует для нее ACL, а точнее DACL, запрещающий доступ BG,SY,BA,IU,BU
    Code:
    #include "stdafx.h"
    #include <windows.h>
    #include <sddl.h>
    
    int main(int argc, char* argv[])
    {
    
    SECURITY_ATTRIBUTES sa;
    sa.nLength=sizeof(SECURITY_ATTRIBUTES);
    sa.bInheritHandle=false;
    char *szSD = "D:P"
    "(D;OICI;GA;;;BG)" //встроенная группа guests
    "(D;OICI;GA;;;SY)" //local system
    "(D;OICI;GA;;;BA)" //builtin admininstrators
    "(D;OICI;GA;;;IU)" //interactive
    "(D;OICI;GA;;;BU)"; //builtin users
    
    if (ConvertStringSecurityDescriptorToSecurityDescriptor(szSD,SDDL_REVISION_1,&(sa.lpSecurityDescriptor),NULL)){
             if (!CreateDirectory("C:\\DACL",&sa))DWORD err=GetLastError();
    }
    LocalFree(sa.lpSecurityDescriptor);
    	return 0;
    }
    Можно ли после запуска этой программы изменить права к этой папке или удалить ее программно ?
     
    #1 lukmus, 5 Jan 2010
    Last edited: 5 Jan 2010
  2. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    366
    Likes Received:
    115
    Reputations:
    23
    и еще необходимо переделать dacl для уже существующей папки/файла. Для этого предназначена функция SetSecurityDescriptorDacl(), но для нее нужна не _SECURITY_ATTRIBUTES, а _ACL.
    Можно ли как-то перегнать параметры _SECURITY_ATTRIBUTES в _ACL ? или подскажите пример задания dacl в структуре _ACL

    P.S. msdn ничего нормального не подсказал
     
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    231
    Без проблем
     
    _________________________
  4. lukmus

    lukmus Elder - Старейшина

    Joined:
    18 Nov 2009
    Messages:
    366
    Likes Received:
    115
    Reputations:
    23
    исчерпывающий ответ