青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Modifying Existing DACLs of an Object Program Example

// Modifying DACL of an object. In ACL there are ACEs...

// Here we are going to add deny standard right

// access for Administrators group. This Win XP machine is

// logged in by user named Mike spoon who is a member of Administrators group

#include <windows.h>

#include <aclapi.h>

#include <stdio.h>

 

// Clean up the allocated resources

void Cleanup(PSECURITY_DESCRIPTOR pSD, PACL pNewDACL)

{

      if(pSD != NULL)

            LocalFree((HLOCAL) pSD);

      else

            wprintf(L"pSD freed up\n");

      if(pNewDACL != NULL)

            LocalFree((HLOCAL) pNewDACL);

      else

            wprintf(L"pNewDACL freed up\n");

}

 

int wmain(int argc, WCHAR **argv)

{

      // Name of object, here we will add ACE for a directory

      // the directory is already created

      LPTSTR pszObjName = L"\\\\?\\C:\\NewDACLDir";

      // Type of object, file or directory.  Here we test on directory

      SE_OBJECT_TYPE ObjectType = SE_FILE_OBJECT;

      // Access mask for new ACE equal to 0x001F0000 flags (bit 0 till 15)

      DWORD dwAccessRights = STANDARD_RIGHTS_ALL;

      // Type of ACE, Access denied ACE

      ACCESS_MODE AccessMode = DENY_ACCESS;

      // Inheritance flags for new the ACE. The OBJECT_INHERIT_ACE and

      // CONTAINER_INHERIT_ACE flags are

      // not propagated to an inherited ACE.

      DWORD dwInheritance = NO_PROPAGATE_INHERIT_ACE;

      // format of trustee structure, the trustee is name

      TRUSTEE_FORM TrusteeForm = TRUSTEE_IS_NAME;

     

      // Trustee for new ACE.  This just for fun...When you run once, only one

      // element will take effect.  By changing the first array element we

      // can change to other trustee and re run the program....

      // Other than Mike spoon, they are all well known trustees

      // Take note the localization issues

      WCHAR pszTrustee[4][15] = {L"Administrators", L"System", L"Users", L"Mike spoon"};

     

      // Result

      DWORD dwRes = 0;

      // Existing and new DACL pointers...

      PACL pOldDACL = NULL, pNewDACL = NULL;

      // Security descriptor

      PSECURITY_DESCRIPTOR pSD = NULL;

      SecureZeroMemory(&pSD, sizeof(PSECURITY_DESCRIPTOR));

      // EXPLICIT_ACCESS structure.  For more than one entries,

      // declare an array of the EXPLICIT_ACCESS structure

      EXPLICIT_ACCESS ea;

 

      // Verify the object name validity

      if(pszObjName == NULL)

      {

            wprintf(L"The object name is invalid!\n");

            return ERROR_INVALID_PARAMETER;

      }

      else

            wprintf(L"The object name is valid, \"%s\"\n", pszObjName);

     

      // Verify that our new trustee strings is OK

      for(int i = 0; i <= 3; i++)

            wprintf(L"Test pointer #%d: %s\n", i, pszTrustee[i]);

     

      // Get a pointer to the existing DACL.

      dwRes = GetNamedSecurityInfo(pszObjName, ObjectType,

            DACL_SECURITY_INFORMATION,

            NULL,

            NULL,

            &pOldDACL,

            NULL,

            &pSD);

     

      // Verify

      if(dwRes != ERROR_SUCCESS)

      {

            wprintf(L"GetNamedSecurityInfo() failed, error %u\n", dwRes);

            Cleanup(pSD, pNewDACL);

      }

      else

            wprintf(L"GetNamedSecurityInfo() is OK\n");

     

      // Initialize an EXPLICIT_ACCESS structure for the new ACE.

      // For more entries, declare an array of the EXPLICIT_ACCESS structure

      SecureZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));

      ea.grfAccessPermissions = dwAccessRights;

      ea.grfAccessMode = AccessMode;

      ea.grfInheritance= dwInheritance;

      ea.Trustee.TrusteeForm = TrusteeForm;

     

      // Test for Administrators group, a new trustee for the ACE

      // For other trustees, you can try changing

      // the array index to 1, 2 and 3 and rerun, see the effect

      ea.Trustee.ptstrName = (LPTSTR)(pszTrustee[0]);

     

      // Create a new ACL that merges the new ACE into the existing DACL.

      dwRes = SetEntriesInAcl(1, &ea, pOldDACL, &pNewDACL);

     

      //  Verify

      if(dwRes != ERROR_SUCCESS)

      {

            wprintf(L"SetEntriesInAcl() failed, error %u\n", dwRes);

            Cleanup(pSD, pNewDACL);

      }

      else

            wprintf(L"SetEntriesInAcl() working fine!\n");

     

      // Attach the new ACL as the object's DACL.

      dwRes = SetNamedSecurityInfo(pszObjName, ObjectType,

            DACL_SECURITY_INFORMATION,

            NULL,

            NULL,

            pNewDACL,

            NULL);

     

      if(dwRes != ERROR_SUCCESS)

      {

            wprintf(L"SetNamedSecurityInfo() failed, error %u\n", dwRes);

            Cleanup(pSD, pNewDACL);

      }

      wprintf(L"SetNamedSecurityInfo() is OK\n");

      return 0;

}

Build and run the project. The following screenshot is a sample output.

 

 

Then verify through the C:\NewDACLDir directory property pages again.

 

 

Under the Permission for Administrators group, the Special Permissions is ticked for the Deny permission.  Keep in mind that Deny overrides the Allow permission.  The following figure also confirmed that our new ACE for the Deny is not inherited.

 

 

Remember that, DENY overwrites ALLOW permission.  For this case because Mike spoon is a member of the Administrators group, however he cannot delete or open the C:\\NewDACLDir directory.  We have to log off and login again as other Administrators group user or create another user that is a member of Administrators or take the object’s ownership or just edit the permission entries (shown at the end of this section).  When we try to delete the folder, the following message was displayed. Well, it funny isn’t it? A user of Administrators group cannot delete/open his/her own folder.

 

 

It is same when we want to open the folder, it is not accessible.

 

 

So, whatever it is, please don’t mess up your machine. The following steps show how to re-enable the Full Control for Administrators group.

 

 

 

posted on 2011-08-23 13:41 wrh 閱讀(490) 評論(1)  編輯 收藏 引用

評論

# re: Modifying Existing DACLs of an Object Program Example 2011-08-23 13:51 代孕

我來逛逛,順便幫博主頂一下,嘿嘿。  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2011年8月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

統計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合不卡| 国产情人节一区| 午夜精品久久久久久| 免费成人高清视频| 亚洲欧美日韩一区二区三区在线| 精品av久久久久电影| 国产精品v日韩精品| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲午夜高清视频| 91久久午夜| 久久黄色网页| 亚洲天堂av电影| 亚洲九九精品| 在线观看国产欧美| 国产亚洲欧美色| 国产精品萝li| 欧美亚日韩国产aⅴ精品中极品| 免费视频最近日韩| 久久精品一区二区三区不卡牛牛| 在线视频精品| 日韩视频免费大全中文字幕| 欧美激情一区二区三区在线| 久久激情久久| 久久精品国产免费观看| 亚洲一区二区三区在线播放| 亚洲乱码国产乱码精品精天堂| 在线观看欧美激情| 国产精品一区二区三区四区| 欧美三级视频在线| 欧美日韩成人一区| 欧美剧在线观看| 欧美精品一区二区三区四区| 男女视频一区二区| 裸体丰满少妇做受久久99精品| 久久精品最新地址| 久久久777| 久久久久国产精品厨房| 久久精品国产亚洲a| 久久成人精品电影| 久久精品国产第一区二区三区最新章节| 亚洲综合欧美日韩| 亚洲欧美国产毛片在线| 午夜精品久久99蜜桃的功能介绍| 亚洲欧美激情精品一区二区| 午夜精品国产精品大乳美女| 欧美与黑人午夜性猛交久久久| 欧美一区二区三区日韩| 欧美一区深夜视频| 久久免费一区| 欧美1区视频| 欧美日韩福利| 国产精品视频久久久| 国产日韩在线看片| 精品1区2区| 亚洲狼人综合| 亚洲一区二区三区色| 亚洲免费伊人电影在线观看av| 性做久久久久久久久| 久久久久综合| 欧美激情一区二区| 亚洲人成亚洲人成在线观看图片 | 日韩一级在线观看| 亚洲无限乱码一二三四麻| 亚洲免费小视频| 久久精品国产久精国产一老狼| 久久综合九色综合欧美狠狠| 亚洲国产经典视频| 亚洲午夜精品网| 久久久久久亚洲精品杨幂换脸| 欧美国产第一页| 欧美小视频在线| 黄色日韩网站视频| 亚洲精品中文字幕女同| 午夜精品福利一区二区三区av| 久久亚洲一区二区三区四区| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美精品麻豆| 国产精品九九| 揄拍成人国产精品视频| 一本一道久久综合狠狠老精东影业 | 黄色成人av网站| 亚洲毛片一区| 久久国产精品久久久久久电车| 久久亚洲春色中文字幕久久久| 亚洲激情啪啪| 先锋影院在线亚洲| 欧美久久99| 国产一区二区三区视频在线观看| 亚洲精品小视频| 欧美一区二区三区免费观看| 亚洲高清色综合| 欧美怡红院视频| 欧美日韩三级电影在线| 在线播放不卡| 午夜宅男久久久| 亚洲电影在线免费观看| 香蕉久久夜色精品国产| 欧美精品激情在线| 一区二区三区我不卡| 亚洲综合日韩在线| 亚洲激情网址| 久久久噜噜噜| 国产日韩欧美a| 亚洲午夜小视频| 男女视频一区二区| 午夜免费久久久久| 欧美日韩亚洲一区在线观看| 亚洲高清在线| 久久在线免费| 午夜精品一区二区在线观看| 欧美日韩在线一区二区| 亚洲第一精品夜夜躁人人躁| 久久国产精品亚洲77777| 一区二区日韩精品| 欧美电影打屁股sp| 亚洲激情av| 欧美+日本+国产+在线a∨观看| 欧美一级久久久| 国产精品男女猛烈高潮激情| 中文精品视频| 日韩午夜在线视频| 欧美激情一区二区三区高清视频| 激情自拍一区| 久久综合给合| 久久久久成人网| 国产亚洲精品自拍| 欧美在线视频免费| 亚洲欧美日韩国产成人精品影院| 欧美性色aⅴ视频一区日韩精品| 99精品欧美一区| 亚洲人成在线观看一区二区| 免费黄网站欧美| 亚洲精品国产品国语在线app| 欧美二区在线| 欧美成人在线网站| 亚洲人成人一区二区在线观看| 欧美激情视频给我| 欧美精品99| 99亚洲一区二区| 亚洲精品久久久久久久久久久久 | 美国十次了思思久久精品导航| 一色屋精品视频在线看| 久久综合五月| 免费在线成人av| 亚洲精一区二区三区| 亚洲日本中文| 国产精品国产三级国产专播品爱网 | 久久免费高清| 久久久噜噜噜久久狠狠50岁| 亚洲人成欧美中文字幕| 亚洲激情六月丁香| 欧美日韩一区二区三区| 亚洲影音一区| 欧美一区二区三区啪啪| 亚洲国产99精品国自产| 亚洲第一视频网站| 欧美三级小说| 午夜精品亚洲一区二区三区嫩草| 午夜亚洲福利| 亚洲国产日韩在线一区模特| 亚洲青色在线| 国产精品免费网站在线观看| 久久青草久久| 欧美精品一区在线发布| 亚洲欧美视频在线观看| 久久国内精品自在自线400部| 亚洲国产一区二区三区青草影视| 亚洲乱码国产乱码精品精可以看| 国产精品系列在线| 蜜臀va亚洲va欧美va天堂| 欧美激情导航| 久久激情五月丁香伊人| 久久五月天婷婷| 亚洲色图综合久久| 久久激情网站| 亚洲精品免费观看| 亚洲欧美日韩在线不卡| 亚洲高清在线| 一本一本久久a久久精品综合麻豆| 国产亚洲精品激情久久| 亚洲国内精品在线| 国产亚洲成av人在线观看导航| 欧美激情一区二区三区| 国产麻豆精品久久一二三| 欧美成人激情视频| 国产精品日韩欧美| 亚洲盗摄视频| 欧美日韩成人激情| 看欧美日韩国产| 国产精品va在线播放| 女同一区二区| 国产精品免费网站在线观看| 亚洲国产成人av好男人在线观看| 国产日韩欧美另类| 亚洲毛片av| 亚洲国产精品va在线看黑人| 亚洲欧美激情四射在线日 | 久久影院亚洲| 国产精品一区三区| 亚洲精品一区二区三区在线观看|