C/C++ 修改文件自由控制权限
#include <windows.h>
#include <stdio.h>
#include <aclapi.h>
int main() {
PACL oldAcl = NULL;
PACL newAcl = NULL;
PSECURITY_DESCRIPTOR pSD = NULL;
DWORD aclCount;
GetNamedSecurityInfo(L"E:\\test1.txt\0", SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, &oldAcl, NULL, &pSD);
PEXPLICIT_ACCESS pace;
GetExplicitEntriesFromAcl(oldAcl, &aclCount, &pace);
pace[0].grfAccessMode = SET_ACCESS;
pace[1].grfAccessMode = SET_ACCESS;
pace[2].grfAccessMode = SET_ACCESS;
SetEntriesInAclW(3, pace, NULL, &newAcl);
SetNamedSecurityInfoW((LPWSTR)L"E:\\test1.txt\0", SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL, NULL, newAcl, NULL);
}