Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HANDLE hDir = CreateFile(lpPath,READ_CONTROL|WRITE_DAC,0,NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,NULL);
- if(hDir == INVALID_HANDLE_VALUE)
- return FALSE;
- ACL* pOldDACL;
- SECURITY_DESCRIPTOR* pSD = NULL;
- GetSecurityInfo(hDir, SE_FILE_OBJECT , DACL_SECURITY_INFORMATION,NULL, NULL, &pOldDACL, NULL, (void**)&pSD);
- PSID pSid = NULL;
- SID_IDENTIFIER_AUTHORITY authNt = SECURITY_NT_AUTHORITY;
- AllocateAndInitializeSid(&authNt,2,SECURITY_BUILTIN_DOMAIN_RID,DOMAIN_ALIAS_RID_USERS,0,0,0,0,0,0,&pSid);
- EXPLICIT_ACCESS ea={0};
- ea.grfAccessMode = GRANT_ACCESS;
- ea.grfAccessPermissions = GENERIC_ALL;
- ea.grfInheritance = CONTAINER_INHERIT_ACE|OBJECT_INHERIT_ACE;
- ea.Trustee.TrusteeType = TRUSTEE_IS_GROUP;
- ea.Trustee.TrusteeForm = TRUSTEE_IS_SID;
- ea.Trustee.ptstrName = (LPTSTR)pSid;
- ACL* pNewDACL = 0;
- DWORD err = SetEntriesInAcl(1,&ea,pOldDACL,&pNewDACL);
- if(pNewDACL)
- SetSecurityInfo(hDir,SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL, NULL, pNewDACL, NULL);
- FreeSid(pSid);
- LocalFree(pNewDACL);
- LocalFree(pSD);
- LocalFree(pOldDACL);
- CloseHandle(hDir);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement