更改文件特定用户的权限 - Windows

时间:2016-04-10 12:24:04

标签: windows file security permissions

我想给特定用户写入/更改特定文件的访问权限。 我已经拥有了用户的SID。 我试图利用这里指定的代码: how to change the ACLs from c++? 但不幸的是,它也剥夺了其他用户组的ALL权限。 下面是我正在使用的当前代码:

PACL pACL = NULL;
EXPLICIT_ACCESS ea[1];
SecureZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));
ea[0].grfAccessPermissions = 0xFFFFFFFF;
ea[0].grfAccessMode = GRANT_ACCESS;
ea[0].grfInheritance = NO_INHERITANCE;
ea[0].Trustee.TrusteeForm = TRUSTEE_IS_SID;
ea[0].Trustee.TrusteeType = TRUSTEE_IS_USER;
ea[0].Trustee.ptstrName = (LPTSTR)pSid;

SetEntriesInAcl(1, ea, NULL, &pACL);

PSECURITY_DESCRIPTOR pSD = (PSECURITY_DESCRIPTOR)LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH);

InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION);

SetSecurityDescriptorDacl(pSD, TRUE, pACL, FALSE);

SetFileSecurity(filename, DACL_SECURITY_INFORMATION, pSD);

LocalFree(pACL);
LocalFree(pSD);

任何帮助表示赞赏

0 个答案:

没有答案