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

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 閱讀(473) 評論(1)  編輯 收藏 引用

評論

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

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

導航

<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| 国产丝袜一区二区三区| 在线观看福利一区| 99xxxx成人网| 久久精品一区二区国产| 嫩草影视亚洲| 夜久久久久久| 久久国产手机看片| 奶水喷射视频一区| 亚洲黄色影院| 中国成人黄色视屏| 午夜精品美女久久久久av福利| 西瓜成人精品人成网站| 亚洲欧美日韩精品在线| 久久久久久综合| 最近中文字幕日韩精品| 亚洲精品1区| 午夜精品国产精品大乳美女| 久久女同互慰一区二区三区| 欧美日韩在线第一页| 国产欧美在线观看一区| 亚洲九九九在线观看| 久久se精品一区精品二区| 亚洲丰满在线| 欧美一区二区精品在线| 欧美国产一区二区在线观看| 国产午夜精品久久| 亚洲性夜色噜噜噜7777| 欧美r片在线| 性色av一区二区三区红粉影视| 欧美高清在线一区二区| 狠狠色狠狠色综合日日五| 亚洲一区二区三区久久| 欧美激情按摩| 久久久午夜电影| 国产日韩在线一区| 午夜欧美精品久久久久久久| 亚洲日本久久| 欧美成人精品在线播放| 狠狠综合久久| 久久精品综合一区| 午夜精品久久久久久久99水蜜桃| 欧美日韩三级| av不卡在线看| 亚洲黄色有码视频| 久久久久久久精| 国产一区二区精品久久91| 99亚洲一区二区| 亚洲人成人一区二区三区| 久久一区精品| 亚洲国产精品成人久久综合一区| 久久久久久久久久码影片| 亚洲一区二区视频在线| 国产精品日本一区二区| 亚洲欧美一区二区三区在线| 亚洲精品欧洲| 欧美体内she精视频| 亚洲网站在线| 99re视频这里只有精品| 欧美日韩一区二区三区| 中日韩美女免费视频网址在线观看| 亚洲福利精品| 欧美精品日韩三级| 一本久久a久久精品亚洲| 亚洲精品欧美一区二区三区| 欧美日韩不卡| 亚洲综合视频一区| 亚洲毛片播放| 久久不见久久见免费视频1| 亚洲直播在线一区| 国产亚洲精品aa午夜观看| 久久免费黄色| 欧美xart系列高清| 亚洲视频一区二区免费在线观看| 一区二区三区|亚洲午夜| 国产伦精品一区二区三区视频孕妇 | 欧美视频在线观看视频极品| 亚洲欧美日韩在线综合| 亚洲欧美日韩国产精品| 伊人天天综合| 日韩亚洲欧美精品| 国产日韩欧美综合| 欧美国产日本| 国产精品美女黄网| 欧美成人激情在线| 国产精品久久久久一区二区三区共| 久久九九热免费视频| 欧美激情一区二区三级高清视频| 亚洲摸下面视频| 久久亚洲电影| 欧美一级理论性理论a| 美女在线一区二区| 久久爱www久久做| 欧美日韩国产综合视频在线| 久久成人资源| 欧美色综合天天久久综合精品| 欧美制服第一页| 欧美.日韩.国产.一区.二区| 亚洲欧美一区二区三区极速播放| 久久夜色精品国产| 午夜精品短视频| 欧美精品自拍| 欧美大片91| 国产一区亚洲| 亚洲午夜日本在线观看| 日韩一级大片| 免费看精品久久片| 麻豆91精品| 国产婷婷一区二区| 亚洲中字在线| 亚洲专区在线| 欧美日韩性生活视频| 欧美大片在线观看一区| 含羞草久久爱69一区| 欧美亚洲日本网站| 欧美在线免费观看亚洲| 欧美人在线视频| 欧美福利视频在线| 影音先锋久久精品| 久久精品女人| 久久一二三四| 一区二区三区在线免费观看 | 中文一区二区在线观看| 欧美色欧美亚洲另类七区| 亚洲国产人成综合网站| 久久福利影视| 久久久久国产精品一区二区| 国产女主播视频一区二区| 亚洲一区二区高清视频| 亚洲男人第一av网站| 国产精品伦一区| 亚洲视频在线观看免费| 亚洲一区精品视频| 国产精品久久一区二区三区| 亚洲精品在线电影| 亚洲新中文字幕| 国产欧美日韩视频| 午夜精品短视频| 久久大香伊蕉在人线观看热2| 国产欧美日韩不卡| 欧美专区在线观看一区| 美女网站久久| 99视频精品全国免费| 欧美日韩成人综合天天影院| 一区二区三区.www| 久久久国产精品一区二区中文| 狠狠色2019综合网| 欧美激情亚洲另类| 亚洲亚洲精品在线观看| 久久看片网站| 亚洲精品国产品国语在线app| 欧美精品aa| 亚洲欧美日韩在线综合| 毛片一区二区| 亚洲一区精品在线| 在线观看国产成人av片| 欧美高清在线| 亚洲欧美日本日韩| 亚洲国产婷婷香蕉久久久久久99| 99综合在线| 国产综合久久久久久鬼色| 欧美成人久久| 午夜一区不卡| 亚洲片国产一区一级在线观看| 亚洲一区久久久| 在线高清一区| 国产精品二区影院| 蜜桃av久久久亚洲精品| 亚洲综合二区| 亚洲国产精品高清久久久| 性做久久久久久久久| 亚洲国产va精品久久久不卡综合| 欧美日韩视频在线观看一区二区三区| 翔田千里一区二区| 日韩视频免费在线观看| 美女啪啪无遮挡免费久久网站| 亚洲欧美国产视频| 99ri日韩精品视频| 在线观看日韩av| 国产午夜亚洲精品羞羞网站 | 国产精品久久福利| 欧美 日韩 国产 一区| 午夜亚洲伦理| 宅男噜噜噜66一区二区66| 欧美成人免费在线| 久久婷婷亚洲| 午夜精品久久久久久久男人的天堂 | 欧美在线视频免费观看| 亚洲私拍自拍| 99精品视频一区二区三区|