Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Создание папки с самым сердитым ACL (https://forum.antichat.xyz/showthread.php?t=168355)

lukmus 05.01.2010 06:37

Создание папки с самым сердитым ACL
 
этот код создает папку C:\DACL и формирует для нее ACL, а точнее DACL, запрещающий доступ BG,SY,BA,IU,BU
Код:

#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;
}

Можно ли после запуска этой программы изменить права к этой папке или удалить ее программно ?

lukmus 05.01.2010 19:33

и еще необходимо переделать dacl для уже существующей папки/файла. Для этого предназначена функция SetSecurityDescriptorDacl(), но для нее нужна не _SECURITY_ATTRIBUTES, а _ACL.
Можно ли как-то перегнать параметры _SECURITY_ATTRIBUTES в _ACL ? или подскажите пример задания dacl в структуре _ACL

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

Kaimi 05.01.2010 20:31

Цитата:


Можно ли после запуска этой программы изменить права к этой папке или удалить ее программно ?
Без проблем

lukmus 05.01.2010 21:08

Цитата:

Сообщение от Kaimi
Без проблем

исчерпывающий ответ


Время: 13:18