将文件夹权限分配给“所有应用程序包”组

卡扎夫

看来Win 8有了一个新的用户组“ ALL APPLICATION PACKAGES”。默认情况下,该组似乎对所有文件夹都具有读取权限。但是,我的要求是在我创建的文件夹上设置一些特定的ACL。该组当前对我的文件夹没有权限,我编写了一些代码来添加“所有应用程序包”的读取权限。我使用的是VS 2010,下面是经过精简的代码段。

http://msdn.microsoft.com/zh-cn/library/cc980032.aspx列出的“所有应用程序包”的SID是ALL_APP_PACKAGES(S-1-15-2-1)。

但是无论我作为受托人传递的值如何或如何,下面的代码均无效。例如,在下面的代码中,SetNamedSecurityInfo()失败,并显示ERROR_INVALID_ACL。但是,如果我使用“管理员”或“每个人”帐户,则可以使用。

我需要分配的确切权限是“读取并执行”,“列出文件夹内容”和“读取”

#include "stdafx.h"
#include "windows.h"
#include "sddl.h"
#include "Aclapi.h"

int _tmain(int argc, _TCHAR* argv[])
{
TCHAR pszObjName[MAX_PATH] = L"C:\\Program Files\\Common Files\\Test\\";
PACL pOldDACL = NULL, pNewDACL = NULL;
PSECURITY_DESCRIPTOR pSD = NULL;
EXPLICIT_ACCESS ea;
SECURITY_INFORMATION si = DACL_SECURITY_INFORMATION;

// Get a pointer to the existing DACL (Conditionaly).
DWORD dwRes = GetNamedSecurityInfo(pszObjName, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, &pOldDACL, NULL, &pSD);

// Initialize an EXPLICIT_ACCESS structure for the new ACE. 
ZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));
ea.grfAccessPermissions = STANDARD_RIGHTS_READ;
ea.grfAccessMode = SET_ACCESS;
ea.grfInheritance= SUB_CONTAINERS_AND_OBJECTS_INHERIT;
ea.Trustee.TrusteeForm = TRUSTEE_IS_SID;
// ea.Trustee.TrusteeType = TRUSTEE_IS_GROUP;
// Should I be using SID (S-1-15-2-1) (SetEntriesInAcl() fails) or "ALL_APP_PACKAGES" (SetEntriesInAcl() passes but SetNamedSecurityInfo() fails)
//If I use "Administrators" or "Everyone" as Trustee Name then it works fine but not with "ALL APPLICATION PACKAGES"
ea.Trustee.ptstrName = _T(" ALL_APP_PACKAGES"); 

// Create a new ACL that merges the new ACE into the existing DACL.
dwRes = SetEntriesInAcl(1, &ea, pOldDACL, &pNewDACL);
if(ERROR_SUCCESS != dwRes) 
goto Cleanup; 

// Attach the new ACL as the object's DACL.
dwRes = SetNamedSecurityInfo(pszObjName, SE_FILE_OBJECT, si, NULL, NULL, pNewDACL, NULL);
if(ERROR_SUCCESS != dwRes)  
goto Cleanup;

Cleanup:
if(pSD != NULL) 
LocalFree((HLOCAL) pSD); 
if(pNewDACL != NULL) 
LocalFree((HLOCAL) pNewDACL); 

return dwRes;
}
杰里米

尝试以这种方式设置受托人结构。这个对我有用。

ea.Trustee.TrusteeForm = TRUSTEE_IS_NAME;
ea.Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP;
ea.Trustee.ptstrName = L"ALL APPLICATION PACKAGES"; 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将所有受限制的应用程序包添加到文件夹权限

来自分类Dev

将所有文件匹配项从文件夹分配给变量

来自分类Dev

所有应用程序包的权限问题

来自分类Dev

Python 3.5.1-将变量分配给目标文件夹中的所有文件(文件类型:.jpg)

来自分类Dev

Python 3.5.1-将变量分配给目标文件夹中的所有文件(文件类型:.jpg)

来自分类Dev

显示所有应用程序未尊重Ubuntu 18.04 / GNOME软件文件夹组

来自分类Dev

如何使相关的本地程序包应用程序文件夹可见

来自分类Dev

将文件夹的名称分配给文件的名称

来自分类Dev

在android应用程序包中指定自定义文件夹地址

来自分类Dev

如何在并行程序包的“应用”函数中将行更改分配给现有矩阵

来自分类Dev

将Visual Studio 2015远程调试到Surface Pro 4:DEP4300无法为应用程序包生成根文件夹

来自分类Dev

分配给程序包中的全局闪亮环境

来自分类Dev

UWP远程调试错误DEP4300-无法为应用程序包生成根文件夹

来自分类Dev

WinRT中用于显示保存在“图片”文件夹(而不是应用程序包)中的图像的路径(ImageSource)

来自分类Dev

UWP远程调试错误DEP4300-无法为应用程序包生成根文件夹

来自分类Dev

如何使用MSBuild为该项目文件夹中的所有文件创建MSdeploy程序包

来自分类Dev

将应用程序配置重新分配给另一个软件包

来自分类Dev

将文件包放入iOS应用程序中的特定文件夹位置

来自分类Dev

将文件包放入iOS应用程序中的特定文件夹位置

来自分类Dev

Django权限未分配给组中的所有用户

来自分类Dev

我需要什么权限才能将托管身份分配给应用程序角色?

来自分类Dev

如何将当前目录分配给保管箱文件夹

来自分类Dev

是否可以将域分配给动态创建的“文件夹”?

来自分类Dev

如何将 mdpi 文件夹中的图像分配给 Xamarin 中的 ImageView?

来自分类Dev

如何设置应用程序/缓存和应用程序/日志文件夹的权限?

来自分类Dev

如何设置应用程序/缓存和应用程序/日志文件夹的权限?

来自分类Dev

XAMPP为什么需要更改应用程序文件夹的应用程序权限?

来自分类Dev

Angular应用程序:将字符串分配给数字时,没有打字稿错误

来自分类Dev

所有应用程序的代码都在“ com”文件夹中吗?

Related 相关文章

  1. 1

    将所有受限制的应用程序包添加到文件夹权限

  2. 2

    将所有文件匹配项从文件夹分配给变量

  3. 3

    所有应用程序包的权限问题

  4. 4

    Python 3.5.1-将变量分配给目标文件夹中的所有文件(文件类型:.jpg)

  5. 5

    Python 3.5.1-将变量分配给目标文件夹中的所有文件(文件类型:.jpg)

  6. 6

    显示所有应用程序未尊重Ubuntu 18.04 / GNOME软件文件夹组

  7. 7

    如何使相关的本地程序包应用程序文件夹可见

  8. 8

    将文件夹的名称分配给文件的名称

  9. 9

    在android应用程序包中指定自定义文件夹地址

  10. 10

    如何在并行程序包的“应用”函数中将行更改分配给现有矩阵

  11. 11

    将Visual Studio 2015远程调试到Surface Pro 4:DEP4300无法为应用程序包生成根文件夹

  12. 12

    分配给程序包中的全局闪亮环境

  13. 13

    UWP远程调试错误DEP4300-无法为应用程序包生成根文件夹

  14. 14

    WinRT中用于显示保存在“图片”文件夹(而不是应用程序包)中的图像的路径(ImageSource)

  15. 15

    UWP远程调试错误DEP4300-无法为应用程序包生成根文件夹

  16. 16

    如何使用MSBuild为该项目文件夹中的所有文件创建MSdeploy程序包

  17. 17

    将应用程序配置重新分配给另一个软件包

  18. 18

    将文件包放入iOS应用程序中的特定文件夹位置

  19. 19

    将文件包放入iOS应用程序中的特定文件夹位置

  20. 20

    Django权限未分配给组中的所有用户

  21. 21

    我需要什么权限才能将托管身份分配给应用程序角色?

  22. 22

    如何将当前目录分配给保管箱文件夹

  23. 23

    是否可以将域分配给动态创建的“文件夹”?

  24. 24

    如何将 mdpi 文件夹中的图像分配给 Xamarin 中的 ImageView?

  25. 25

    如何设置应用程序/缓存和应用程序/日志文件夹的权限?

  26. 26

    如何设置应用程序/缓存和应用程序/日志文件夹的权限?

  27. 27

    XAMPP为什么需要更改应用程序文件夹的应用程序权限?

  28. 28

    Angular应用程序:将字符串分配给数字时,没有打字稿错误

  29. 29

    所有应用程序的代码都在“ com”文件夹中吗?

热门标签

归档